2010-09-08 127 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