使用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

你可能感兴趣的:(linux,GDB技巧,linux,bpftrace,GDB)