微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 ld_preload 中使用 perf?

如何解决如何在 ld_preload 中使用 perf?

我尝试使用 perf statLD_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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。