我正在创建一个程序来在 java 中查找空指针取消引用。使用的方法是首先使用javap命令提取 java 字节码,然后从中提取控制流图 (CFG) 信息。从字节码中获得 CFG 后,我会对字节码进行分析以识别空分配和取消引用。如果存在从空赋值到取消引用的可能流程,我会指出这些路径。现在我遇到的问题是我将字节码中的这个空赋值和取消引用标识为字节码行号。但是显示字节码语句是没有用的。因此,我想将获得的行号映射到相应的源代码行号,以显示它被分配为空的位置。我如何让它发生?
注意:我知道比在字节码中识别它更容易在源代码中识别空赋值但是我从字节码开始以便于提取 CFG,现在我没有时间更改程序以从源代码进行分析。