Package qilin

Class CoreConfig.CorePTAConfiguration

java.lang.Object
qilin.CoreConfig.CorePTAConfiguration
Direct Known Subclasses:
PTAConfig.PointerAnalysisConfiguration
Enclosing class:
CoreConfig

public static class CoreConfig.CorePTAConfiguration extends Object
  • Field Details

    • singleentry

      public boolean singleentry
    • clinitMode

      public CoreConfig.ClinitMode clinitMode
      Clinit loading mode: APP: A debug mode for testing which load only the minimum <clinit> of classes needed. FULL: load all <clinit> of classes that are currently loaded in the scene. ON_THE_FLY: we load <clinit> on the fly, this mode is same as DOOP (default mode).
    • mergeHeap

      public boolean mergeHeap
      enable to merge heaps like StringBuilder/StringBuffer, exceptions by types.
    • preciseArrayElement

      public boolean preciseArrayElement
      the type of array element is java.lang.Object by default. if set to be true, we will use more precise type for array elements.
    • stringConstants

      public boolean stringConstants
      in qilin.spark propagate all string constants false means merge all string constants, see the corresponding flag, DISTINGUISH_NO_STRING_CONSTANTS, in DOOP.
    • preciseExceptions

      public boolean preciseExceptions
      The default setting (same as the imprecise version in Doop): there is a global variable for all thrown exceptions and any caught exception variable points to all those exceptions. Obviously, this is extremely imprecise.

      This imprecision does not seem to matter too much for typical programs in the context-insensitive and 1-call-site-sensitive analyses, but is disastrous in the 1-object-sensitive analysis.

      once this switch is open, it will model exception flow-sensitively (same as the precise version in Doop). Implicitly thrown exceptions are not included.

    • enforceEmptyCtxForIgnoreTypes

      public boolean enforceEmptyCtxForIgnoreTypes
      in qilin.spark limit heap context for strings if we are object sensitive
    • ptaName

      public String ptaName
  • Constructor Details

    • CorePTAConfiguration

      public CorePTAConfiguration()