2010-09-08 128 views
5

如果达到断点(或在GDB shell中按Ctrl + C),GDB通常停止所有线程。我知道像调度器锁定和调度多个命令存在,但我认为没有可能让一个定义的线程在后台运行而另一个调试。不停止gdb中的所有线程

回答

9

您可以使用set target-async on启用异步模式下,如果你的目标支持它。然后,您可以使用命令指定后台执行。例如,

continue& 

可用于运行的单个线程,

interrupt [-a] 

暂停单个线程,或整个程序的执行。

在不停的模式的同时,您可以检查一个单独的线程,而其他人继续在后台运行:

# If using the CLI, pagination breaks non-stop. 
set pagination off 

# Finally, turn it on! 
set non-stop on 
# Before debugging is started! 
+0

完美的回答了这个问题。谢谢。 – azraiyl 2010-09-08 10:23:38