我正在尝试对一个进行多次fork()
调用的 Linux 二进制文件进行逆向工程。我在 Ubuntu 上使用 GDB 7.5。我试图用 GDB 做的是附加到某个fork()
(比如第二个调用)。是做这组的唯一途径follow-fork-mode
,以child
和捕捉到所有通话fork
和手动切换每一次呢?
将 GDB 附加到特定的分支
逆向工程
linux
数据库
多进程
2021-06-17 07:08:16
2个回答
您也可以使用set detach-on-fork off
,如文档中所述:
set detach-on-fork MODE
告诉 gdb 是在 fork 之后分离其中一个进程,还是保留对它们两个的调试器控制。
文档也这样说:
如果您选择
detach-on-fork
关闭模式,那么 GDB 将保留对所有分叉进程(包括嵌套分叉)的控制。可以通过使用该列表GDB的控制下,叉状过程info inferiors
命令,通过使用从一个叉切换到另一个inferior
命令要退出调试分叉进程之一,您可以使用该
detach inferiors
命令从它分离(允许它独立运行),或者使用该kill inferiors
命令终止它。
你所描述的是我通常如何处理这个问题。fork
如有必要,在自身上设置断点提供了更改此模式的好地方。
或者,如果子线程/进程“稳定”,您可以在事后使用inferior
命令切换到它们。
其它你可能感兴趣的问题