如何将 perf 与 ld_preload 一起使用?
How to use perf with ld_preload?
我尝试使用 perf stat
和 LD_PRELOAD
作为可执行文件的前缀,例如:
perf stat LD_PRELOAD=$PWD/../user/preload.so ./write 1
perf好像不行,有什么办法可以实现吗?
perf stat env LD_PRELOAD=.... ./write 1
这应该有效,尽管这意味着 /usr/bin/env
是正在分析的进程,因此您也得到了它的开销。至少它比 sh -c 'LD_PRELOAD=... exec ./write 1'
.
这样的命令便宜
如果启动开销成为问题,您可以自己 write
fork/exec perf stat -p <PID>
自己。 perf stat for part of program
我尝试使用 perf stat
和 LD_PRELOAD
作为可执行文件的前缀,例如:
perf stat LD_PRELOAD=$PWD/../user/preload.so ./write 1
perf好像不行,有什么办法可以实现吗?
perf stat env LD_PRELOAD=.... ./write 1
这应该有效,尽管这意味着 /usr/bin/env
是正在分析的进程,因此您也得到了它的开销。至少它比 sh -c 'LD_PRELOAD=... exec ./write 1'
.
如果启动开销成为问题,您可以自己 write
fork/exec perf stat -p <PID>
自己。 perf stat for part of program