我想搜索某个注释的所有匹配项,以选择分析区域。
以nullck分析为例;我希望找到所有的@NotNull注释,并从包含一个声明为@NotNull的变量的方法开始运行nullck分析。
有没有可能用烟灰做到这一点?似乎Jimple没有保留注释信息。
或者,编写一个注释预处理器,在使用@NotNull注释的局部变量周围生成特殊的标记,并在运行Soot时匹配这些标记,这是不是一个好主意?
发布于 2020-11-02 15:27:42
似乎变量信息不会暴露给除编译器以外的任何人;not even in the .class、not even annotation processors,甚至不能保留源代码。
所以答案是,在当前的java中,我们不可能把它传递给soot。
对于不在局部变量上的注释,比如方法和参数,它们在soot.tagkit.Host.getTags()下。但是,有必要使用jap而不是jtp。
https://stackoverflow.com/questions/64640123
复制相似问题