С помощью следующего кода я могу получить jimple представление файла java .class:
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();
Однако мне нужно знать карту от .class до jimple. В частности, для определенной строки кода в файле .class я хочу знать ее соответствующее представление jimple. Поскольку одна строка кода может быть преобразована в несколько кодов jimple, эта карта может быть один ко многим. Существует ли какой-либо API или метод, который может решить эту проблему?




Я нахожу решение здесь. Подробно, для Unit вы можете использовать
Unit unit = ...
int sourceID = unit.getJavaSourceStartLineNumber();
// do something smart here ...