diff --git a/docs/qilin.md b/docs/qilin.md index b562d100466..8c22be8df39 100644 --- a/docs/qilin.md +++ b/docs/qilin.md @@ -1,13 +1,15 @@ # Incorporate Qilin Pointer Analysis + ### Dependencies + === "Maven" - ```maven - - org.soot-oss - sootup.java.sourcecode - {{ git_latest_release }} - - ``` +```maven + +org.soot-oss +sootup.java.sourcecode +{{ git_latest_release }} + +``` === "Gradle" @@ -17,6 +19,8 @@ ### How to create a pointer analysis +!!! note "WIP: Beware most likely the API will change so you only need to specify SootUp objects!" + One can create an Andersen's context-insensitive analysis with following code: === "Java" @@ -44,19 +48,19 @@ Second, we can use it to get the points-to results for some interested local var ```java PointsToSet pts0 = pta.reachingObjects(method, v0); - PointsToSet pts1 = pta.reachingObjects(method, v1, f); // PTS(v1.f) +PointsToSet pts1 = pta.reachingObjects(method, v1, f); // PTS(v1.f) ``` Third, we can check whether two variables, `a` and `b`, are aliases by checking whether there is an object that exists in both of their points-to sets. -Qilin does not currently offer a `isMayAlias` API within the PTA class. However, a similar functionality can be found -in `qilin.test.util.AliasAssertion` with the method: -```boolean isMayAlias(PTA pta, Value va, Value vb)```. -This method allows users to check for potential aliasing between two values -given a PTA instance. +Qilin does not currently offer a `isMayAlias` API within the PTA class. +However, a similar functionality can be found in `qilin.test.util.AliasAssertion` with the method: +```boolean isMayAlias(PTA pta, Value va, Value vb)``` +This method allows to check for potential aliasing between two values given a PTA instance. + +### A Full list of Pointer Analyses -### A Full list of Point Analyses [Qilin](https://github.com/QilinPTA/Qilin)'s toolbox includes a rich set of pointer analyses, which are given below: Note that the symbol **k** used in the table should be replaced with a concrete small constant like 1 or 2.