在调试多进程程序(如 Web 服务器及其 CGI 子进程)时,gdb 虽提供 follow-fork-mode 与 detach-on-fork 用于跟踪父子进程,但在实际中因子进程生命周期短、fork 频繁及进程依赖复杂等因素,这些机制常难以捕获目标子进程,甚至影响服务运行。为此,本文介绍一种更稳定的方法:在目标程序入口 patch 一段机器码,使进程启动后进入无限循环等待 gdb --attach;完成附加后再恢复原始指令,从而在多进程环境中获得可控且可靠的调试条件。
-
发表于 2025-12-26 09:43:49
- 阅读 ( 377 )
- 分类:二进制