Java 符号的指令地址

Instruction address to symbol for Java

假设我有一个 Java 程序的特定指令地址(无论出于何种原因),我想知道它属于哪个函数。

例如,如果这是来自 C++ 程序,我可以使用 binutils(addr2line 等)来获取它。

这对于 Java 程序是否可行,因为没有 ELF 文件,因为字节码是 JIT 编译的?

你听说过 javap 吗??

使用 javap -c MyClass.class 你可以查看字节码指令。

检查https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html是否有帮助

perf-map-agent 解决了这个问题:

perf-map-agent is an agent that will generate such a mapping file for Java applications. It consists of a Java agent written C and a small Java bootstrap application which attaches the agent to a running Java process.