Assembly 如何执行记录存储程序集代码

Assembly 如何执行记录存储程序集代码,assembly,record,perf,Assembly,Record,Perf,我试图修改perf record来处理目标进程/程序的汇编代码。因此,我想知道perf在哪里使用数据结构来存储汇编代码和计算目标进程/程序的位置 通常,perf record完成后将写入一个“perf.data”,我们可以使用perf record,按“Enter”键并选择“annotate”查看目标进程/程序的汇编代码。通过这种方式,我们可以得到哪个代码行是计数的原因 perf.record不会以任何方式处理程序集,也不会在perf.data中存储任何程序集或指令性能记录记录包含指令指针的事件

我试图修改
perf record
来处理目标进程/程序的汇编代码。因此,我想知道perf在哪里使用数据结构来存储汇编代码和计算目标进程/程序的位置


通常,
perf record
完成后将写入一个“perf.data”,我们可以使用
perf record
,按“Enter”键并选择“annotate”查看目标进程/程序的汇编代码。通过这种方式,我们可以得到哪个代码行是计数的原因

perf.record
不会以任何方式处理程序集,也不会在
perf.data
中存储任何程序集或指令<代码>性能记录记录包含指令指针的事件。在
perf report
和其他分析工具期间,这些都是使用MMAP信息在o DSO内转换的地址
perf
知道相应二进制文件的文件名-请注意,如果在录制后发生更改,它可能会使用
.debug/.build id
下这些二进制文件的副本来使用正确的版本。Perf在文件上运行
objdump
,以获取反汇编并显示带注释的视图


这回答了你的问题,但如果没有任何进一步的信息,就不可能真正帮助你实现你真正想要做的事情。您还可以基于
perf\u event\u open

构建自己的工具。您确实需要为您想要实现的目标添加更多细节。这个问题很不清楚,谢谢。我尝试修改
perf
源代码,让'perf record'命令可以实时输出目标进程/程序的汇编代码的计数器编号和计数器位置,而不是rusult文件
perf.data
。就像你说的
perf record
记录包含指令指针的事件,那么perf使用什么数据结构或在哪里存储指令指针的内容,例如虚拟地址?