如何在 gdb 中附加进程
Posted
技术标签:
【中文标题】如何在 gdb 中附加进程【英文标题】:How to attach a process in gdb 【发布时间】:2012-12-31 12:19:25 【问题描述】:我有一个简单的 C 程序,它派生出一个进程,然后运行一个可执行文件。
我想将子进程附加到 gdb。
我在一个控制台中运行主程序并打开另一个控制台来查找子进程的pid,然后使用以下命令启动gdb:
gdb attach 12271
其中12271
是子进程ID,但附加失败:
No such file or directory.
知道为什么吗?
【问题讨论】:
我不认为 attach 是命令行参数。一旦 gdb 已经运行,您就可以使用它。这家伙有一个很好的教程:dirac.org/linux/gdb/06-Debugging_A_Running_Process.php Can I use GDB to debug a running process?的可能重复 【参考方案1】:尝试以下方法之一:
gdb -p 12271
gdb /path/to/exe 12271
gdb /path/to/exe
(gdb) attach 12271
【讨论】:
【参考方案2】:第一个参数应该是可执行程序的路径。所以
gdb progname 12271
【讨论】:
【参考方案3】:使用myExecutableName
的运行实例,其PID 为15073
:
在命令行中在$ gdb myExecu
之后点击Tab 两次,将自动自动完成:
$ gdb myExecutableName 15073
并将 gdb 附加到此进程。太好了!
【讨论】:
以上是关于如何在 gdb 中附加进程的主要内容,如果未能解决你的问题,请参考以下文章