Skip to content

Full list of Qilin options

DongjieHe edited this page Apr 28, 2022 · 3 revisions

input options

Options Meaning
-apppath <arg> Specifies the Jar/Class files for the input program.
-libpath <arg> Specifies the libraries used by the input program.
-reflectionlog <arg> Specifies a reflection log (currently generated by Tamiflex) for representing the reflective targets found at the reflective calls in the input program.
-mainclass <arg> Specifies the main class (or the class that contains main() method) for the input program.
-jre=<arg> Specifies the JRE path for the input program.

output options

Options Meaning
-jimple Dumps the jimple files for the input program.
-cg Dumps the callgraph in the dot format for the input program.
-pag Dumps the PAG (pointer assignment graph) of the input program.

general PTA options

Options Meaning
-pae Enables type filtering for the objects stored in an array based on the declared type of the array. By default, declared type is java.lang.Object as in Spark.
-pe Enables propagating exception objects along exception-catch-links rather than to a global node as in Spark
-clinit=ONFLY Specifies the loading mode of <clinit> methods. Under the ``ONFLY'' option, the <clinit> methods for all the classes in the input program are loaded on the fly. The other options are `FULL` (all classes' clinit methods are considered to be reachable) and `APP` (all application classes' clinit methods are considered to be reachable).
-mh Merges the objects of type StringBuffer, StringBuilder, or any subtype of Throwable per type.
-lcs Analyses the objects of type StringBuffer, StringBuilder, or any subtype of Throwable context-insensitively.
-pta=insens Specifies a particular pointer analysis to be performed. Here, insens is the default context-insensitivie pointer analysis. You can also use ko for kOBJ, kc for kCFA, etc (Note that k should be a small constant like 1, 2, 3, ...). A full list of PTAs supported by QiLin can be found here.
-se Specifies main() as the only entry for analysing the input program in a lightweight manner.
-sc Handles string constants as separate objects without merging them.

Specific PTA Options

Options Meaning
-tc=[DEFAULT] Specifies the default Turner configuration as described in our ECOOP'21 paper. The other two options are PHASE_ONE (for running Turner's first phase) and PHASE_TWO (for running Turner's second phase).
-cd Enables context debloating optimization as described in our ASE'21 paper.
-tmd Enables Turner to run modularly as described in our TSE 2022 paper.

Other options

Options Meaning
-h Prints the help information.
-pre Runs only the pre-analysis of a two-stage pointer analysis (e.g., for the purposes of accelerating the main pointer analysis).