gpt4 book ai didi

python - 启动 gdb 以连接到多个现有进程(使用 python 脚本!)

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:21 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本来遍历我当前正在执行的进程列表,查找由特定用户运行的进程,然后运行 ​​GDB 以 Hook 所有这些进程。

我目前获得了某个用户运行的所有进程的列表。 (我为此使用了 http://andreinc.net/2010/11/07/how-to-get-the-active-process-list-on-a-linux-machine-using-python/)

但是,我终其一生都无法将其与如何启动 gdb 并 Hook 到每个与 Python 相比的劣势者相提并论。我知道如何使用 Python 脚本启动 gdb,只是没有通过适当的顺序在 gdb 内附加多个进程并为每个进程创建一个劣质进程。

我知道,一旦您运行了 gdb,就可以使用 create-inferior 创建新的下级,然后切换到它们并附加一个进程。有没有办法添加一个劣质的并立即将其附加到进程?

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

谢谢!

最佳答案

you can create new inferiors with create-inferior

您的意思可能是add-inferior。这可行,但不是很优雅:

$ 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

考虑在 GDB bugzilla 中提交功能请求: 如果 add-inferior 接受 pid(除了可执行文件名之外或代替可执行文件名),您的任务会更简单。

关于python - 启动 gdb 以连接到多个现有进程(使用 python 脚本!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com