本文主要是介绍使用bpftrace+GDB尽早attach启动时间不定的进程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引言
曾经在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.
- 优点:简单直接,不必修改代码。
- 缺点:某些平台可能得先安装bpftrace, 特别是低内核版本的distribution不支持bpf
这篇关于使用bpftrace+GDB尽早attach启动时间不定的进程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!