我尝试修改perf record
来处理目标进程/程序的汇编代码。因此,我想知道数据结构在哪里用于存储汇编代码和计算目标进程/程序的位置?
通常,perf record
在完成后会写一个'perf.data',我们可以使用perf record
,按'Enter'并选择'annotate'来查看目标流程/程序的汇编代码。通过这种方式,我们可以得到哪个代码行是计数的原因。
答案 0 :(得分:1)
perf record
不以任何方式处理程序集,perf.data
中也没有存储任何程序集或指令。 perf record
记录包含指令指针的事件。在perf report
和其他分析工具期间,这些是使用MMAP信息在o DSO中转换的地址。 perf
知道相应二进制文件的文件名 - 请注意,如果自录制后更改了.debug/.build-id
,则可以使用正确版本。 Perf在文件上运行objdump
以获取反汇编并显示带注释的视图。
这回答了你的问题,但没有任何进一步的信息,就不可能真正帮助你实现你真正想要做的事情。您还可以根据perf_event_open
构建自己的工具。