soot.options.Options.keep_line_number()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(6.0k)|赞(0)|评价(0)|浏览(130)

本文整理了Java中soot.options.Options.keep_line_number()方法的一些代码示例,展示了Options.keep_line_number()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Options.keep_line_number()方法的具体详情如下:
包路径:soot.options.Options
类名称:Options
方法名:keep_line_number

Options.keep_line_number介绍

暂无

代码示例

代码示例来源:origin: Sable/soot

private void adjustLineNumberTable() {
 if (!Options.v().keep_line_number()) {
  return;
 }
 if (method.code_attr == null) {
  return;
 }
 attribute_info[] attributes = method.code_attr.attributes;
 for (attribute_info element : attributes) {
  if (element instanceof LineNumberTable_attribute) {
   LineNumberTable_attribute lntattr = (LineNumberTable_attribute) element;
   for (line_number_table_entry element0 : lntattr.line_number_table) {
    Instruction oldinst = element0.start_inst;
    Instruction newinst = replacedInsns.get(oldinst);
    if (newinst != null) {
     element0.start_inst = newinst;
    }
   }
  }
 }
}

代码示例来源:origin: Sable/soot

public static void addLnPosTags(soot.tagkit.Host host, int sline, int eline, int spos, int epos) {
 if (soot.options.Options.v().keep_line_number()) {
  host.addTag(new soot.tagkit.SourceLnPosTag(sline, eline, spos, epos));
 }
}

代码示例来源:origin: Sable/soot

public static void addMethodLineTag(soot.tagkit.Host host, int sline, int eline) {
 if (soot.options.Options.v().keep_line_number()) {
  host.addTag(new soot.tagkit.SourceLineNumberTag(sline, eline));
 }
}

代码示例来源:origin: Sable/soot

void setUnit(AbstractInsnNode insn, Unit u) {
 if (Options.v().keep_line_number() && lastLineNumber >= 0) {
  Tag lineTag = u.getTag("LineNumberTag");
  if (lineTag == null) {
   lineTag = new LineNumberTag(lastLineNumber);
   u.addTag(lineTag);
  } else if (((LineNumberTag) lineTag).getLineNumber() != lastLineNumber) {
   throw new RuntimeException("Line tag mismatch");
  }
 }
 Unit o = units.put(insn, u);
 if (o != null) {
  throw new AssertionError(insn.getOpcode() + " already has a unit, " + o);
 }
}

代码示例来源:origin: Sable/soot

if (Options.v().keep_line_number()) {
 HashMap<Stmt, Tag> stmtstags = new HashMap<Stmt, Tag>();
 LinkedList<Stmt> startstmts = new LinkedList<Stmt>();

代码示例来源:origin: Sable/soot

/**
 * Line Tag Adder
 */
public static void addLineTag(soot.tagkit.Host host, polyglot.ast.Node node) {
 if (soot.options.Options.v().keep_line_number()) {
  if (node.position() != null) {
   host.addTag(new soot.tagkit.SourceLineNumberTag(node.position().line(), node.position().line()));
  }
 }
}

代码示例来源:origin: Sable/soot

/**
 * Tag the passed host with: - this instructions line number (if one is set) - the original bytecode offset
 *
 * @param host
 *          the host to tag
 */
protected void addTags(Host host) {
 Options options = Options.v();
 if (options.keep_line_number() && lineNumber != -1) {
  host.addTag(new LineNumberTag(lineNumber));
  host.addTag(new SourceLineNumberTag(lineNumber));
 }
 if (options.keep_offset()) {
  host.addTag(new BytecodeOffsetTag(codeAddress));
 }
}

代码示例来源:origin: Sable/soot

public static void addLnPosTags(soot.tagkit.Host host, polyglot.util.Position pos) {
 if (pos != null) {
  if (soot.options.Options.v().keep_line_number()) {
   if (pos.file() != null) {
    host.addTag(
      new soot.tagkit.SourceLnNamePosTag(pos.file(), pos.line(), pos.endLine(), pos.column(), pos.endColumn()));
   } else {
    host.addTag(new soot.tagkit.SourceLnPosTag(pos.line(), pos.endLine(), pos.column(), pos.endColumn()));
   }
  }
 }
}

代码示例来源:origin: Sable/soot

private void runPacksNormally() {
 if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()) {
  LineNumberAdder lineNumAdder = LineNumberAdder.v();
  lineNumAdder.internalTransform("", null);

代码示例来源:origin: Sable/soot

private void runPacksForOneClassAtATime() {
 if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()) {
  LineNumberAdder lineNumAdder = LineNumberAdder.v();
  lineNumAdder.internalTransform("", null);

代码示例来源:origin: Sable/soot

if (options.keep_line_number()) {
 fixLineNumbers();

代码示例来源:origin: ibinti/bugvm

private void adjustLineNumberTable()
{
if (!Options.v().keep_line_number())
  return;
if (method.code_attr == null)
  return;
attribute_info[] attributes = method.code_attr.attributes;
for (attribute_info element : attributes) {
  if (element instanceof LineNumberTable_attribute)
  {
  LineNumberTable_attribute lntattr =
    (LineNumberTable_attribute)element;
  for (line_number_table_entry element0 : lntattr.line_number_table) {
    Instruction oldinst = 
    element0.start_inst;
    Instruction newinst =
    replacedInsns.get(oldinst);
    if (newinst != null)
    element0.start_inst = newinst;
  }
  }
}
}

代码示例来源:origin: com.bugvm/bugvm-soot

private void adjustLineNumberTable()
{
if (!Options.v().keep_line_number())
  return;
if (method.code_attr == null)
  return;
attribute_info[] attributes = method.code_attr.attributes;
for (attribute_info element : attributes) {
  if (element instanceof LineNumberTable_attribute)
  {
  LineNumberTable_attribute lntattr =
    (LineNumberTable_attribute)element;
  for (line_number_table_entry element0 : lntattr.line_number_table) {
    Instruction oldinst = 
    element0.start_inst;
    Instruction newinst =
    replacedInsns.get(oldinst);
    if (newinst != null)
    element0.start_inst = newinst;
  }
  }
}
}

代码示例来源:origin: ibinti/bugvm

if (Options.v().keep_line_number())

代码示例来源:origin: com.bugvm/bugvm-soot

if (Options.v().keep_line_number())

代码示例来源:origin: com.bugvm/bugvm-soot

public void runPacks() {
  if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){
    LineNumberAdder lineNumAdder = LineNumberAdder.v();
    lineNumAdder.internalTransform("", null);
  }
  
  retrieveAllBodies();
  
  if (Options.v().interactive_mode()){
    if (InteractionHandler.v().getInteractionListener() == null){
      G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode.");
      Options.v().set_interactive_mode(false);
    }
    else {
      G.v().out.println("Running in interactive mode.");
    }
  }
  
  runBodyPacks();
  handleInnerClasses();
}

代码示例来源:origin: ibinti/bugvm

public void runPacks() {
  if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){
    LineNumberAdder lineNumAdder = LineNumberAdder.v();
    lineNumAdder.internalTransform("", null);
  }
  
  retrieveAllBodies();
  
  if (Options.v().interactive_mode()){
    if (InteractionHandler.v().getInteractionListener() == null){
      G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode.");
      Options.v().set_interactive_mode(false);
    }
    else {
      G.v().out.println("Running in interactive mode.");
    }
  }
  
  runBodyPacks();
  handleInnerClasses();
}

相关文章

微信公众号

最新文章

更多