Class OnFlyCallGraphBuilder.TraceBasedReflectionModel

    • Field Detail

      • guards

        protected final Set<soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.Guard> guards
    • Method Detail

      • classForName

        public void classForName​(SootMethod container,
                                 Stmt forNameInvokeStmt)
        Adds an edge to all class initializers of all possible receivers of Class.forName() calls within source.
        Specified by:
        classForName in interface ReflectionModel
      • contructorNewInstance

        public void contructorNewInstance​(SootMethod container,
                                          Stmt newInstanceInvokeStmt)
        Adds a special edge of kind Kind.REFL_CONSTR_NEWINSTANCE to all possible target constructors of this call to Constructor#newInstance(Object...). Those kinds of edges are treated specially in terms of how parameters are assigned, as parameters to the reflective call are passed into the argument array of Constructor#newInstance(Object...).
        Specified by:
        contructorNewInstance in interface ReflectionModel
        See Also:
        PAG#addCallTarget(Edge)
      • methodInvoke

        public void methodInvoke​(SootMethod container,
                                 Stmt invokeStmt)
        Adds a special edge of kind Kind.REFL_INVOKE to all possible target methods of this call to Method#invoke(Object, Object...). Those kinds of edges are treated specially in terms of how parameters are assigned, as parameters to the reflective call are passed into the argument array of Method#invoke(Object, Object...).
        Specified by:
        methodInvoke in interface ReflectionModel
        See Also:
        PAG#addCallTarget(Edge)