本文整理汇总了Java中org.jf.dexlib2.iface.debug.LineNumber类的典型用法代码示例。如果您正苦于以下问题:Java LineNumber类的具体用法?Java LineNumber怎么用?Java LineNumber使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LineNumber类属于org.jf.dexlib2.iface.debug包,在下文中一共展示了LineNumber类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getSourceFileLine
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Override
protected int getSourceFileLine() {
// Parse debug information lazily.
if (sourceFileMethod != null) {
MethodImplementation mi = sourceFileMethod.getImplementation();
if (mi != null) {
for (DebugItem di : mi.getDebugItems()) {
if (di instanceof LineNumber) {
sourceFileLine = ((LineNumber) di).getLineNumber();
break;
}
if (di instanceof SetSourceFile) {
// TODO: Support this type of debug item.
break;
}
}
}
sourceFileMethod = null;
}
return sourceFileLine;
}
示例2: of
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Nonnull
public static ImmutableDebugItem of(DebugItem debugItem) {
if (debugItem instanceof ImmutableDebugItem) {
return (ImmutableDebugItem) debugItem;
}
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL:
return ImmutableStartLocal.of((StartLocal) debugItem);
case DebugItemType.END_LOCAL:
return ImmutableEndLocal.of((EndLocal) debugItem);
case DebugItemType.RESTART_LOCAL:
return ImmutableRestartLocal.of((RestartLocal) debugItem);
case DebugItemType.PROLOGUE_END:
return ImmutablePrologueEnd.of((PrologueEnd) debugItem);
case DebugItemType.EPILOGUE_BEGIN:
return ImmutableEpilogueBegin.of((EpilogueBegin) debugItem);
case DebugItemType.SET_SOURCE_FILE:
return ImmutableSetSourceFile.of((SetSourceFile) debugItem);
case DebugItemType.LINE_NUMBER:
return ImmutableLineNumber.of((LineNumber) debugItem);
default:
throw new ExceptionWithContext("Invalid debug item type: %d", debugItem.getDebugItemType());
}
}
示例3: convertDebugItem
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Nonnull
private BuilderDebugItem convertDebugItem(@Nonnull DebugItem debugItem) {
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL: {
StartLocal startLocal = (StartLocal) debugItem;
return new BuilderStartLocal(startLocal.getRegister(),
(StringReference) convertReference(startLocal.getNameReference()),
(TypeReference) convertReference(startLocal.getTypeReference()),
(StringReference) convertReference(startLocal.getSignatureReference()));
}
case DebugItemType.END_LOCAL: {
EndLocal endLocal = (EndLocal) debugItem;
return new BuilderEndLocal(endLocal.getRegister());
}
case DebugItemType.RESTART_LOCAL: {
RestartLocal restartLocal = (RestartLocal) debugItem;
return new BuilderRestartLocal(restartLocal.getRegister());
}
case DebugItemType.PROLOGUE_END:
return new BuilderPrologueEnd();
case DebugItemType.EPILOGUE_BEGIN:
return new BuilderEpilogueBegin();
case DebugItemType.LINE_NUMBER: {
LineNumber lineNumber = (LineNumber) debugItem;
return new BuilderLineNumber(lineNumber.getLineNumber());
}
case DebugItemType.SET_SOURCE_FILE: {
SetSourceFile setSourceFile = (SetSourceFile) debugItem;
return new BuilderSetSourceFile(
(StringReference) convertReference(setSourceFile.getSourceFileReference())
);
}
default:
throw new ExceptionWithContext("Invalid debug item type: " + debugItem.getDebugItemType());
}
}
示例4: of
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Nonnull
public static ImmutableLineNumber of(@Nonnull LineNumber lineNumber) {
if (lineNumber instanceof ImmutableLineNumber) {
return (ImmutableLineNumber)lineNumber;
}
return new ImmutableLineNumber(
lineNumber.getCodeAddress(),
lineNumber.getLineNumber());
}
示例5: of
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
public static ImmutableLineNumber of( LineNumber lineNumber) {
if (lineNumber instanceof ImmutableLineNumber) {
return (ImmutableLineNumber)lineNumber;
}
return new ImmutableLineNumber(
lineNumber.getCodeAddress(),
lineNumber.getLineNumber());
}
示例6: of
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Nonnull
public static ImmutableLineNumber of(@Nonnull LineNumber lineNumber) {
if (lineNumber instanceof ImmutableLineNumber) {
return (ImmutableLineNumber) lineNumber;
}
return new ImmutableLineNumber(
lineNumber.getCodeAddress(),
lineNumber.getLineNumber());
}
示例7: convertDebugItem
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Nonnull
private BuilderDebugItem convertDebugItem(@Nonnull DebugItem debugItem) {
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL: {
StartLocal startLocal = (StartLocal) debugItem;
return new BuilderStartLocal(startLocal.getRegister(), startLocal.getNameReference(),
startLocal.getTypeReference(), startLocal.getSignatureReference());
}
case DebugItemType.END_LOCAL: {
EndLocal endLocal = (EndLocal) debugItem;
return new BuilderEndLocal(endLocal.getRegister());
}
case DebugItemType.RESTART_LOCAL: {
RestartLocal restartLocal = (RestartLocal) debugItem;
return new BuilderRestartLocal(restartLocal.getRegister());
}
case DebugItemType.PROLOGUE_END:
return new BuilderPrologueEnd();
case DebugItemType.EPILOGUE_BEGIN:
return new BuilderEpilogueBegin();
case DebugItemType.LINE_NUMBER: {
LineNumber lineNumber = (LineNumber) debugItem;
return new BuilderLineNumber(lineNumber.getLineNumber());
}
case DebugItemType.SET_SOURCE_FILE: {
SetSourceFile setSourceFile = (SetSourceFile) debugItem;
return new BuilderSetSourceFile(setSourceFile.getSourceFileReference());
}
default:
throw new ExceptionWithContext("Invalid debug item type: " + debugItem.getDebugItemType());
}
}
示例8: LineNumberMethodItem
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
public LineNumberMethodItem(int codeAddress, int sortOrder, @Nonnull LineNumber lineNumber) {
super(codeAddress, sortOrder);
this.lineNumber = lineNumber.getLineNumber();
}
示例9: writeDebugItem
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Override
public void writeDebugItem(@Nonnull DebugWriter<CharSequence, CharSequence> writer,
DebugItem debugItem) throws IOException {
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL: {
StartLocal startLocal = (StartLocal) debugItem;
writer.writeStartLocal(startLocal.getCodeAddress(),
startLocal.getRegister(),
startLocal.getName(),
startLocal.getType(),
startLocal.getSignature());
break;
}
case DebugItemType.END_LOCAL: {
EndLocal endLocal = (EndLocal) debugItem;
writer.writeEndLocal(endLocal.getCodeAddress(), endLocal.getRegister());
break;
}
case DebugItemType.RESTART_LOCAL: {
RestartLocal restartLocal = (RestartLocal) debugItem;
writer.writeRestartLocal(restartLocal.getCodeAddress(), restartLocal.getRegister());
break;
}
case DebugItemType.PROLOGUE_END: {
writer.writePrologueEnd(debugItem.getCodeAddress());
break;
}
case DebugItemType.EPILOGUE_BEGIN: {
writer.writeEpilogueBegin(debugItem.getCodeAddress());
break;
}
case DebugItemType.LINE_NUMBER: {
LineNumber lineNumber = (LineNumber) debugItem;
writer.writeLineNumber(lineNumber.getCodeAddress(), lineNumber.getLineNumber());
break;
}
case DebugItemType.SET_SOURCE_FILE: {
SetSourceFile setSourceFile = (SetSourceFile) debugItem;
writer.writeSetSourceFile(setSourceFile.getCodeAddress(), setSourceFile.getSourceFile());
}
default:
throw new ExceptionWithContext("Unexpected debug item type: %d", debugItem.getDebugItemType());
}
}
示例10: writeDebugItem
import org.jf.dexlib2.iface.debug.LineNumber; //导入依赖的package包/类
@Override
public void writeDebugItem(@Nonnull DebugWriter<BuilderStringReference, BuilderTypeReference> writer,
DebugItem debugItem) throws IOException {
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL: {
StartLocal startLocal = (StartLocal) debugItem;
writer.writeStartLocal(startLocal.getCodeAddress(),
startLocal.getRegister(),
checkStringReference(startLocal.getNameReference()),
checkTypeReference(startLocal.getTypeReference()),
checkStringReference(startLocal.getSignatureReference()));
break;
}
case DebugItemType.END_LOCAL: {
EndLocal endLocal = (EndLocal) debugItem;
writer.writeEndLocal(endLocal.getCodeAddress(), endLocal.getRegister());
break;
}
case DebugItemType.RESTART_LOCAL: {
RestartLocal restartLocal = (RestartLocal) debugItem;
writer.writeRestartLocal(restartLocal.getCodeAddress(), restartLocal.getRegister());
break;
}
case DebugItemType.PROLOGUE_END: {
writer.writePrologueEnd(debugItem.getCodeAddress());
break;
}
case DebugItemType.EPILOGUE_BEGIN: {
writer.writeEpilogueBegin(debugItem.getCodeAddress());
break;
}
case DebugItemType.LINE_NUMBER: {
LineNumber lineNumber = (LineNumber) debugItem;
writer.writeLineNumber(lineNumber.getCodeAddress(), lineNumber.getLineNumber());
break;
}
case DebugItemType.SET_SOURCE_FILE: {
SetSourceFile setSourceFile = (SetSourceFile) debugItem;
writer.writeSetSourceFile(setSourceFile.getCodeAddress(),
checkStringReference(setSourceFile.getSourceFileReference()));
}
default:
throw new ExceptionWithContext("Unexpected debug item type: %d", debugItem.getDebugItemType());
}
}