启动gdb以钩住多个现有进程(使用python脚本!)

启动gdb以钩住多个现有进程(使用python脚本!),python,gdb,Python,Gdb,我正在编写一个python脚本来浏览当前正在执行的进程列表,查找某个用户运行的进程,然后运行GDB来钩住所有这些进程 我目前得到了某个用户运行的所有进程的列表。(我用过这个) 然而,就我的一生而言,我无法与如何启动gdb和使用Python中的一个单独的函数来钩住每一个函数相协调。我知道如何使用Python脚本启动gdb,只是没有适当的顺序在gdb中附加多个进程并为每个进程创建一个较低的进程 我知道一旦你运行了gdb,你就可以用createsubsier创建新的subsier,然后切换到它们并附加

我正在编写一个python脚本来浏览当前正在执行的进程列表,查找某个用户运行的进程,然后运行GDB来钩住所有这些进程

我目前得到了某个用户运行的所有进程的列表。(我用过这个)

然而,就我的一生而言,我无法与如何启动gdb和使用Python中的一个单独的函数来钩住每一个函数相协调。我知道如何使用Python脚本启动gdb,只是没有适当的顺序在gdb中附加多个进程并为每个进程创建一个较低的进程

我知道一旦你运行了gdb,你就可以用createsubsier创建新的subsier,然后切换到它们并附加一个进程。是否有一种方法可以添加劣质产品并立即将其附加到流程

更好的是,是否有一种方法可以启动具有多个下级的gdb,每个下级都附加到参数列表中的不同进程

谢谢

您可以使用“创建下级”创建新的下级

你的意思可能是
添加劣质的
。这很管用,但不是很优雅:

$ sleep 1800 & sleep 1800 & sleep 1900 &
[1] 80375
[2] 80376
[3] 80377

$ gdb -q -ex 'attach 80375' \
  -ex 'add-inferior' -ex 'inferior 2' -ex 'attach 80376' \
  -ex 'add-inferior' -ex 'inferior 3' -ex 'attach 80377'
...
(gdb) info inferiors
  Num  Description       Executable
* 3    process 80377     /bin/sleep
  2    process 80376     /bin/sleep
  1    process 80375     /bin/sleep
(gdb) q
Detaching from program: /bin/sleep, process 80377
Detaching from program: /bin/sleep, process 80376
Detaching from program: /bin/sleep, process 80375

考虑在中提交功能请求:如果
添加劣质
接受pid(除了或代替可执行文件名),您的任务将更简单。

谢谢,是的,我的意思是添加劣质…谢谢您的帮助!那个功能请求是个好主意,我很可能会这样要求!