如何使用ptrace跟踪程序执行情况?
我一直在尝试使用系统调用“ptrace”(使用 PTRACE_SINGLESTEP 宏)来跟踪简单应用程序的执行。
在记录程序的执行时,我想跳过阅读中无用的部分,只从我的应用程序的“主要”部分开始。因为每当我启动跟踪器时,我都会得到大约 100k 执行步骤。
亲切的
I've been trying to use the system call "ptrace" (using the PTRACE_SINGLESTEP macro) to trace the execution of a simple application.
While recording the execution of the program I would like to skip the useless part of the reading to only follow from the 'main' of my application. Because whenever I launch my tracer I get around 100k execution steps.
Cordialy
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能需要在
main
入口处插入一个断点,等待SIGTRAP
到达,恢复断点下的指令,然后从那里单步执行。You may want to insert a breakpoint at
main
entry, wait for aSIGTRAP
to arrive, restore the instruction under the breakpoint, and single-step from there.