也许是一个简单的问题。
当我附加到某个进程时,我会运行“继续”以使其继续运行。
然后我想要一些其他工作,比如“add-symbol-file”,不需要与目标进程交互,但是在“continue”命令之后,gdb控制台将阻塞,所以在我休息之前我不能做任何动作这个过程。
有没有办法在没有暂停过程的情况下做这样的事情?
答案 0 :(得分:4)
确保运行gdb的控制台具有键盘焦点,然后按CTRL-C。这通常会导致将SIGINT信号发送到gdb。 有了我,GDB会暂停程序的执行并再次接受用户命令。
如果CTRL-C不起作用(可能是不同的配置),请尝试手动发送信号: 找出gdb的pid,例如使用命令 top ,然后将SIGINT发送到gdb:
kill -2 pidhere
答案 1 :(得分:3)
直到最近你才能做你想做的事,但新发布的 gdb 7.0版具有所谓的“不间断”模式,其中 程序运行时可以使用gdb提示符/控制台。
请参阅http://sourceware.org/gdb/current/onlinedocs/gdb_6.html#SEC47
答案 2 :(得分:1)
您可能希望稍微研究remote gdb mechanisms这样的事情 为了更好地理解调试过程read this short article。