引言
曾经在stackoverflow看到过一篇求助帖子《Is there any way to tell GDB to wait for a process to start and attach to it?》,大体问题:工具链上调用关系很长,父进程调用子进程,子进程调用孙进程,如此下去,最后有一个进程崩溃了,提问者期望在崩溃之前用GDB attach上去调试调试,好找到崩溃原因。
问题是崩溃进程可能崩溃的很快,以至于没有时间attach。
上节《改造strace以赋予它暂停某进程的能力》我们改造了strace使得它支持碰到sys execve时回调用户指定的脚本,脚本中你可以充分发挥你的想象力干点啥。
本节我们将介绍另外一种办法:

本文介绍了如何使用bpftrace配合GDB解决在崩溃前无法及时attach到进程的问题。通过bpftrace的简单命令,利用tracepoint、filter和action,可以在特定进程启动时触发暂停,为GDB的attach提供机会。这种方法不需要修改代码,但可能需要在某些平台上安装bpftrace。文章还提供了bpftrace的相关资源和命令解析。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



