Packages

package cg

Source
package.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. cg
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package reflection
  2. package rta
  3. package xta

Type Members

  1. class AllocationSitesPointsToTypeIterator extends TypeIterator with PointsToTypeIterator[AllocationSite, AllocationSitePointsToSet] with SimpleContextProvider

    Type iterator with 1-call sensitivity for objects, for the 0-1-CFA algorithm.

  2. trait AnalysisState extends AnyRef
  3. trait BaseAnalysisState extends AnalysisState
  4. class CFA_k_l_TypeIterator extends TypeIterator with PointsToTypeIterator[AllocationSite, AllocationSitePointsToSet] with CallStringContextProvider

    Context-sensitive points-to type iterator for the k-l-CFA algorithm.

  5. class CGState[ContextType <: Context] extends BaseAnalysisState with TypeIteratorState with TACAIBasedAnalysisState[ContextType]

  6. class CHATypeIterator extends TypeIterator with SimpleContextProvider

    Provides types based only on local, static type information.

    Provides types based only on local, static type information. Never registers any dependencies, the continuation function throws an error if called anyway.

  7. class CallGraphAnalysis extends ReachableMethodAnalysis with TypeConsumerAnalysis

    Generates call graphs based on the used TypeIterator.

    Generates call graphs based on the used TypeIterator. It uses the AI information of the three-address code to get the most precise information for virtual calls. handleImpreciseCall will be invoked for each virtual call, that could not be resolved precisely.

  8. class CallGraphDeserializerScheduler extends BasicFPCFEagerAnalysisScheduler
  9. case class CallSite(pc: Int, methodName: String, methodDescriptor: MethodDescriptor, receiver: ReferenceType) extends Product with Serializable
  10. case class CallSiteDescription(declaredTarget: MethodDesc, line: Int, pc: Option[Int], targets: List[MethodDesc]) extends Product with Serializable

    A call site has a declaredTarget method, is associated with a line number (-1 if unknown) and contains the set of computed target methods (targets).

  11. trait CallStringContextProvider extends TypeIterator
  12. sealed trait CalleesAndCallers extends AnyRef

    A convenience class for call graph constructions.

    A convenience class for call graph constructions. Manages direct/indirect calls and incomplete call sites and allows the analyses to retrieve the required org.opalj.fpcf.PartialResults for Callers and Callees.

  13. trait Calls extends CalleesAndCallers
  14. class ConfiguredNativeMethodsCallGraphAnalysis extends FPCFAnalysis

    Add calls from configured native methods to the call graph.

    Add calls from configured native methods to the call graph. Calls can be specialized under the config key configKey.

    Example:
    1. specify that registerNatives will call initializeSystemClass. { cf = "java/lang/System", name = "registerNatives", desc = "()V", methodInvocations = [ { cf = "java/lang/System", name = "initializeSystemClass", desc = "()V" } ] }

  15. trait ContextualAnalysis extends AnyRef
  16. class DirectCalls extends DirectCallsBase with IncompleteCallSites
  17. trait DirectCallsBase extends Calls
  18. class DoPrivilegedCGAnalysis extends FPCFAnalysis
  19. class DoPrivilegedMethodAnalysis extends TACAIBasedAPIBasedAnalysis with TypeConsumerAnalysis

    Models the behavior for java.security.AccessController.doPrivileged*.

    Models the behavior for java.security.AccessController.doPrivileged*.

    On each call of the concrete doPrivilegedMethod method it will call the declaredRunMethod upon its first parameter and returns the result of this call.

    For each such call, the analysis will add an indirect call to the call graph.

    TODO: The current implementation won't work if the JDK is not included. In order to perform the analysis even if the method is a org.opalj.br.VirtualDeclaredMethod, the org.opalj.br.analyses.VirtualFormalParameters must also be present for those methods.

  20. class FinalizerAnalysis extends FPCFAnalysis

    Computes the set of finalize methods that are being called by the VM during the execution of the project.

    Computes the set of finalize methods that are being called by the VM during the execution of the project. Extends the call graph analysis (org.opalj.tac.fpcf.analyses.cg.CallGraphAnalysis) to include the calls to these methods.

  21. trait IncompleteCallSites extends CalleesAndCallers
  22. class IndirectCalls extends IndirectCallsBase with IncompleteCallSites
  23. trait IndirectCallsBase extends Calls
  24. class LoadedClassesAnalysis extends FPCFAnalysis

    For a reachable methods (see Callers) this class computes the classes that are being loaded (e.g.

    For a reachable methods (see Callers) this class computes the classes that are being loaded (e.g. due to static field accesses).

  25. case class MethodDesc(name: String, declaringClass: String, returnType: String, parameterTypes: List[String]) extends Product with Serializable

    A method is represented using the name, the declaringClass, its returnType and its parameterTypes.

  26. class OISReadObjectAnalysis extends TACAIBasedAPIBasedAnalysis with TypeConsumerAnalysis

    Analysis handling the specifics of java.io.ObjectInputStream.readObject.

    Analysis handling the specifics of java.io.ObjectInputStream.readObject. This method may instantiate new objects and invoke readObject, readResolve, readExternal or validateObject on them.

  27. class OOSWriteObjectAnalysis extends TACAIBasedAPIBasedAnalysis with TypeConsumerAnalysis

    Analysis handling the specifics of java.io.ObjectOutputStream.writeObject.

    Analysis handling the specifics of java.io.ObjectOutputStream.writeObject. This method may invoke writeObject, writeReplace or writeExternal on its parameter.

  28. trait PointsToTypeIterator[ElementType, PointsToSet >: Null <: PointsToSetLike[ElementType, _, PointsToSet]] extends TypeIterator

    Functionality for providing types based on individual points-to information, e.g., CFA.

    Functionality for providing types based on individual points-to information, e.g., CFA. Points-to information is stored per variable.

  29. class PropagationBasedTypeIterator extends TypeIterator with SimpleContextProvider

    Configurable type iterator for the XTA family of call graphs.

    Configurable type iterator for the XTA family of call graphs. Based on the given TypeSetEntitySelector, XTA, MTA, FTA or CTA behavior can be produced. Types are stored per entity plus a global set of types.

  30. class RTATypeIterator extends TypeIterator with SimpleContextProvider

    Fast type iterator based on a global set of instantiated types.

  31. trait ReachableMethodAnalysis extends FPCFAnalysis with TypeConsumerAnalysis

    Base trait for analyses that are executed for every method that is reachable.

    Base trait for analyses that are executed for every method that is reachable. The analysis is performed by processMethod.

  32. case class ReachableMethodDescription(method: MethodDesc, callSites: List[CallSiteDescription]) extends Product with Serializable

    A reachable method contains of the method itself and the call sites within that method.

  33. case class ReachableMethodsDescription(reachableMethods: List[ReachableMethodDescription]) extends Product with Serializable

    Representation of all Methods that are reachable in the represented call graph.

    Representation of all Methods that are reachable in the represented call graph. TODO: This classes are copy&paste code from the JCG project and should be included as Dependency.

  34. class SerializationRelatedCallsAnalysis extends FPCFAnalysis

    Handles the effect of serialization to the call graph.

    Handles the effect of serialization to the call graph. As an example models the invocation of constructors when readObject is called, if there is a cast afterwards.

  35. trait SimpleContextProvider extends TypeIterator
  36. class StaticInitializerAnalysis extends FPCFAnalysis

    Extends the call graph analysis to include calls to static initializers from within the JVM for each loaded class (LoadedClasses).

    Extends the call graph analysis to include calls to static initializers from within the JVM for each loaded class (LoadedClasses). This requires the LoadedClasses to be computed, e.g. by the LoadedClassesAnalysis.

  37. class ThreadRelatedCallsAnalysis extends FPCFAnalysis

    This analysis handles implicit method invocations related to the java.lang.Thread API.

    This analysis handles implicit method invocations related to the java.lang.Thread API. As an example, a call to Thread#start eventual lead to an invocation of the run method of the corresponding java.lang.Runnable object.

  38. class ThreadStartAnalysis extends TACAIBasedAPIBasedAnalysis with TypeConsumerAnalysis

    On calls to Thread.start(), it adds calls to the corresponding run method.

    On calls to Thread.start(), it adds calls to the corresponding run method. The run method is determined using points-to information.

  39. trait TypeConsumerAnalysis extends ProjectBasedAnalysis
  40. abstract class TypeIterator extends AnyRef

    Core class of the call-graph framework: Provides type and (if available) points-to information to client classes.

    Core class of the call-graph framework: Provides type and (if available) points-to information to client classes. Each type iterator represents one traditional call-graph algorithm.

    Type iterators are responsible for managing the dependencies for their internal information themselves. They provide suitable continuation functions to be invoked from an analysis' continuation in order to process these opaque dependencies.

  41. trait TypeIteratorState extends AnalysisState

    A trait to implement state classes that have to manage the state of a TypeIterator, i.e., the dependencies introduced by querying type information.

  42. trait TypesBasedPointsToTypeIterator extends TypeIterator with PointsToTypeIterator[ReferenceType, TypeBasedPointsToSet]

    Context-insensitive points-to type iterator for the 0-CFA algorithm.

  43. class UncaughtExceptionHandlerAnalysis extends TACAIBasedAPIBasedAnalysis with TypeConsumerAnalysis
  44. type V = DUVar[ValueInformation]
  45. class VMReachableMethods extends VMReachableMethodsBase with IncompleteCallSites
  46. trait VMReachableMethodsBase extends CalleesAndCallers

Value Members

  1. final def pcOfDefSite(valueOrigin: ValueOrigin)(implicit stmts: Array[Stmt[V]]): Int
  2. final def persistentUVar(value: V)(implicit stmts: Array[Stmt[V]]): Some[(ValueInformation, IntTrieSet)]

    A persistent representation (using pcs instead of TAC value origins) for a UVar.

  3. final def uVarForDefSites(defSites: (ValueInformation, IntTrieSet), pcToIndex: Array[Int]): V
  4. final def valueOriginsOfPCs(pcs: PCs, pcToIndex: Array[Int]): IntTrieSet
  5. object AllocationsUtil
  6. object CallGraphAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  7. object CallSiteDescription extends Serializable
  8. object ConfiguredNativeMethodsCallGraphAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  9. object DoPrivilegedAnalysisScheduler extends BasicFPCFEagerAnalysisScheduler
  10. object FinalizerAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  11. object LoadedClassesAnalysisScheduler extends BasicFPCFTriggeredAnalysisScheduler
  12. object MethodDesc extends Serializable
  13. object ReachableMethodDescription extends Serializable
  14. object ReachableMethodsDescription extends Serializable
  15. object SerializationRelatedCallsAnalysisScheduler extends BasicFPCFEagerAnalysisScheduler
  16. object StaticInitializerAnalysisScheduler extends BasicFPCFEagerAnalysisScheduler
  17. object ThreadRelatedCallsAnalysisScheduler extends BasicFPCFEagerAnalysisScheduler

Inherited from AnyRef

Inherited from Any

Ungrouped