如何从gdb命令提示符执行外部命令?

时间:2010-11-28 15:35:59

标签: gdb

我正在使用gdb调试程序。每当我错过断点或决定添加另一个观察点时,我必须终止该过程并重新运行它。为了将现有的gdb附加到它,我使用attach <pid>。但是,我必须找出新流程的pid。

我今天这样做的方法是暂停gdb,使用ps -C <program_name>获取pid,然后返回gdb以附加到它。

有没有办法从gdb命令提示符运行unix命令而不退出shell,这样我就可以在gdb里面做这样的事情了:

attach `ps -C <program_name>`

我正在使用linux。

4 个答案:

答案 0 :(得分:19)

  

(gdb)帮助shell
  执行其余的   该行作为shell命令。没有   参数,运行劣质外壳。

完成后,您可以使用'exit'返回gdb。

答案 1 :(得分:12)

gdb$ shell

shell$ execute_your_commands 

shell$ exit

gdb$ you_have_returned_back_to_gdb_prompt

答案 2 :(得分:5)

您可以使用shell后跟要执行的命令,例如:

gdb$ shell g++ tsort.c -o tsort

这只是上一个答案的简短形式。

答案 3 :(得分:2)

为了扩展已接受的答案,shell的快捷方式为!

  

(gdb)帮助!

     

执行该行的其余部分作为shell命令。没有争论,   打败劣质的外壳。