首页 > 解决方案 > 检索 soot 中的注释信息

问题描述

我想搜索某个注释的所有出现以选择分析区域。

以nullck分析为例;我想找到所有@NotNull注释并从包含已声明变量的方法开始运行 nullck 分析@NotNull

用烟灰可以做到这一点吗?Jimple 似乎不保留注释信息。

@NotNull或者,编写一个注释预处理器会不会是一个好主意,它会在 Soot 运行时围绕带有注释的局部变量生成特殊标记并匹配这些标记?

标签: javaannotationssoot

解决方案


似乎变量信息不会暴露给编译器以外的任何人;甚至在 中.class,甚至在注释处理器中,甚至在 SOURCE 级别的保留中也没有。

所以答案是我们无法将它传递给当前java中的soot。

对于不在局部变量上的注解,例如方法和参数,它们在soot.tagkit.Host.getTags(). 但是有必要使用jap而不是jtp.


推荐阅读