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

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

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

Options.dynamic_class介绍

暂无

代码示例

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

public void loadDynamicClasses() {
 dynamicClasses = new ArrayList<SootClass>();
 HashSet<String> dynClasses = new HashSet<String>();
 dynClasses.addAll(Options.v().dynamic_class());
 for (Iterator<String> pathIt = Options.v().dynamic_dir().iterator(); pathIt.hasNext();) {
  final String path = pathIt.next();
  dynClasses.addAll(SourceLocator.v().getClassesUnder(path));
 }
 for (Iterator<String> pkgIt = Options.v().dynamic_package().iterator(); pkgIt.hasNext();) {
  final String pkg = pkgIt.next();
  dynClasses.addAll(SourceLocator.v().classesInDynamicPackage(pkg));
 }
 for (String className : dynClasses) {
  dynamicClasses.add(loadClassAndSupport(className));
 }
 // remove non-concrete classes that may accidentally have been loaded
 for (Iterator<SootClass> iterator = dynamicClasses.iterator(); iterator.hasNext();) {
  SootClass c = iterator.next();
  if (!c.isConcrete()) {
   if (Options.v().verbose()) {
    logger.warn("dynamic class " + c.getName() + " is abstract or an interface, and it will not be considered.");
   }
   iterator.remove();
  }
 }
}

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

public void loadDynamicClasses() {
  dynamicClasses = new ArrayList<SootClass>();
  HashSet<String> dynClasses = new HashSet<String>();
  dynClasses.addAll(Options.v().dynamic_class());
  for( Iterator<String> pathIt = Options.v().dynamic_dir().iterator(); pathIt.hasNext(); ) {
    final String path = (String) pathIt.next();
    dynClasses.addAll(SourceLocator.v().getClassesUnder(path));
  }
  for( Iterator<String> pkgIt = Options.v().dynamic_package().iterator(); pkgIt.hasNext(); ) {
    final String pkg = (String) pkgIt.next();
    dynClasses.addAll(SourceLocator.v().classesInDynamicPackage(pkg));
  }
  for (String className : dynClasses) {
    dynamicClasses.add( loadClassAndSupport(className) );
  }
  
  //remove non-concrete classes that may accidentally have been loaded
  for (Iterator<SootClass> iterator = dynamicClasses.iterator(); iterator.hasNext();) {
    SootClass c = iterator.next();
    if(!c.isConcrete()) {
      if(Options.v().verbose()) {
        G.v().out.println("Warning: dynamic class "+c.getName()+" is abstract or an interface, and it will not be considered.");
      }
      iterator.remove();
    }
  }
}

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

public void loadDynamicClasses() {
  dynamicClasses = new ArrayList<SootClass>();
  HashSet<String> dynClasses = new HashSet<String>();
  dynClasses.addAll(Options.v().dynamic_class());
  for( Iterator<String> pathIt = Options.v().dynamic_dir().iterator(); pathIt.hasNext(); ) {
    final String path = (String) pathIt.next();
    dynClasses.addAll(SourceLocator.v().getClassesUnder(path));
  }
  for( Iterator<String> pkgIt = Options.v().dynamic_package().iterator(); pkgIt.hasNext(); ) {
    final String pkg = (String) pkgIt.next();
    dynClasses.addAll(SourceLocator.v().classesInDynamicPackage(pkg));
  }
  for (String className : dynClasses) {
    dynamicClasses.add( loadClassAndSupport(className) );
  }
  
  //remove non-concrete classes that may accidentally have been loaded
  for (Iterator<SootClass> iterator = dynamicClasses.iterator(); iterator.hasNext();) {
    SootClass c = iterator.next();
    if(!c.isConcrete()) {
      if(Options.v().verbose()) {
        G.v().out.println("Warning: dynamic class "+c.getName()+" is abstract or an interface, and it will not be considered.");
      }
      iterator.remove();
    }
  }
}

相关文章

微信公众号

最新文章

更多