gpt4 book ai didi

linux - 使用 perf 进行应用程序例程跟踪

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:08 26 4
gpt4 key购买 nike

是否可以使用 linux perf 工具在预编译的二进制文件中捕获用户空间函数的参数?我无法通过文档或谷歌弄清楚这一点?

如果没有其他建议?谢谢...

最佳答案

我不知道如何使用 perf 来做到这一点,但还有其他方法。如果 gdb 合适就使用它。如果由于性能问题而适合,则使用 SystemTap:

1) 你的预编译二进制文件有调试信息,你可以使用 gdb 只需附加到正在运行的进程,放置断点并可能为其添加命令: 破坏你的函数 命令 信息参数 继续 结束

2) 你的预编译二进制文件没有调试信息,你可以使用 gdb 在这种情况下,您需要了解调用约定。例如对于 x64_86 破坏你的函数 命令 信息寄存器rdi 继续 结束

3) 你的预编译二进制文件有调试信息,你不能使用gdb,但可以使用SystemTap 然后是这样的:

sudo stap params.stp -x <PID>  'process("your-process-name").function("your_function")'

> cat params.stp

function trace(extra)
{
printf("params:%s\n", extra)
}

probe $1.call { trace($$parms$$) }

关于linux - 使用 perf 进行应用程序例程跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com