'Soot - Map from java class to jimple
With the following code I can get the jimple
representation of a java .class
file:
soot.Main.main(args);
SootClass mainClass = Scene.v().getMainClass();
String methodSignature = "void main(java.lang.String[])";
SootMethod mainMethod = mainClass.getMethod(methodSignature);
Body jimpleBody = mainMethod.retrieveActiveBody();
However, I need to know the map from .class
to jimple
. In detail, For a certain line of code in the .class
file, I want to know its corresponding jimple
representation. Since one line of code can be converted into multiple jimple
codes, this map can be one-to-many. Does there exist any API or method that can solve this problem?
Solution 1:[1]
I find the solution here. In detail, for a Unit
you can use
Unit unit = ...
int sourceID = unit.getJavaSourceStartLineNumber();
// do something smart here ...
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | MissSirius |