Package qilin.core.pag
package qilin.core.pag
Points-to analysis graph (PAG) data structures, based on Soot/jimple/spark/pag with significant
modifications.
-
ClassDescriptionRepresents an allocation site node in the pointer assignment graph.A pseudo-field standing in for "any element of any array", used to model array stores/loads field-insensitively:
PAGholds exactly oneArrayElementinstance (seePAG.getArrayElement()), shared across every array type in the program.callsite based context element in the points to analysis.Represents an allocation site node the represents a known java.lang.Class object.ASparkFieldwrapping a real, declaredSootField-- as opposed toArrayElement, which is the pseudo-field standing in for "any array cell".Represents a field reference node in the pointer assignment graph.Represents a simple variable node in the pointer assignment graph that is not associated with any particular method invocation.An allocation site standing in for the object aLambdaMetafactory-bootstrapped invokedynamic call site produces (a lambda or method reference).The resolved target of a lambda/method-reference alloc, as read off its bootstrap args.Part of a pointer assignment graph for a single method.Represents a synthetic pointer-assignment-graph variable for one of a method's special argument-passing slots: an ordinary parameter at a given index (the base case, this class itself), or the receiver (this), the return value, or the thrown exception (theMethodParameter.This,MethodParameter.ReturnandMethodParameter.Throwsubclasses).Pointer assignment graph.Represents every node in the pointer assignment graph.Double-dispatch counterpart ofPagNode.parameterize(Parameterizer, Context): each PAG node kind that knows how to turn itself into a context-sensitive node calls back into the matching overload here, instead of the caller (e.g.Represents a field.Represents an allocation site node the represents a constant string.Represents a simple of pointer node in the pointer assignment graph.Represents a simple variable node in the pointer assignment graph.Holds relevant information about a particular virtual call site.