2013-01-17 40 views
36

我有一个简单的C程序,它分叉一个进程然后运行一个可执行文件。如何在gdb中附加进程

我想将子进程附加到gdb。

我运行在一个控制台主程序并打开另一个控制台找出子进程的PID,然后我开始GDB用下面的命令:

gdb attach 12271 

其中12271是子进程的ID,但连接失败,有:

No such file or directory. 

任何想法,为什么?

+0

我不认为连接是一个命令行参数。一旦gdb已经在运行,你可以使用它。这家伙有一个很好的教程:http://dirac.org/linux/gdb/06-Debugging_A_Running_Process.php – thang

+0

可能重复[我可以使用GDB调试正在运行的进程?](http://stackoverflow.com/questions/2308653 /可-I-使用-GDB调试的-A-行驶过程) –

回答

76

尝试其中之一:

gdb -p 12271 
gdb /path/to/exe 12271 

gdb /path/to/exe 
(gdb) attach 12271 
11

第一个参数应该是可执行程序的路径。所以

gdb progname 12271 
相关问题