java - 检索 soot 中的注释信息
问题描述
我想搜索某个注释的所有出现以选择分析区域。
以nullck分析为例;我想找到所有@NotNull
注释并从包含已声明变量的方法开始运行 nullck 分析@NotNull
。
用烟灰可以做到这一点吗?Jimple 似乎不保留注释信息。
@NotNull
或者,编写一个注释预处理器会不会是一个好主意,它会在 Soot 运行时围绕带有注释的局部变量生成特殊标记并匹配这些标记?
解决方案
似乎变量信息不会暴露给编译器以外的任何人;甚至在 中.class
,甚至在注释处理器中,甚至在 SOURCE 级别的保留中也没有。
所以答案是我们无法将它传递给当前java中的soot。
对于不在局部变量上的注解,例如方法和参数,它们在soot.tagkit.Host.getTags()
. 但是有必要使用jap
而不是jtp
.
推荐阅读
- laravel - Laravel Socialite Discord Provider 抛出 code_verifier 错误
- reactjs - 我的反应应用程序的本地主机似乎没有打开..它一直在我的浏览器中加载
- docker - 如何在未预定义所述图像的情况下拥有基于同一图像的多个容器?(即,它是从特定的 Dockerfile 构建的)
- reactjs - 反应自定义钩子指的是不正确的功能
- vuejs3 - Vue 3 组合 API:Array.length 无反应
- python - Pyinstaller exe 不能在 dist 文件夹之外工作
- file - BlueZone 命令将整个屏幕内容复制到文本文件
- intellij-idea - 开始新方法时 IntelliJ 红色波浪下划线
- java - 如何从 Discord OAUTH2 获取响应并将其转换为我自己的 UserDetails,我可以在整个代码中使用它
- python - 处理父小部件和子小部件上的鼠标事件(按钮不消耗事件?)