使用"-allow-phantom-refs"选项时,soot允许class和method没有定义。
1. 找不到class的定义。class仅仅作为type。
soot处理:class仅作为type使用。
2. 有class的定义,但其中某些method没有定义。——该方法为super class的方法,本class直接继承使用。
soot处理:getMethod()方法会调用createUnresolvedErrorMethod(),为该方法创建body(抛出异常)。
(例如,body.validate()或者遍历其他method中的units,调用getMethod()方法时,就会触发对startProcessLocked()的调用。)
对于第二种情况,soot的处理是错误的。用soot进行代码生成时,会产生错误的代码。