2012-02-02 61 views
16

我想知道的是,如果可能的話,在Linux的調試會話中(讀取:gdb :))停止執行單個線程,而讓其他線程運行。在Linux中進行調試期間可以停止單個線程嗎?

如果有人想知道爲什麼要繼續閱讀: 我寫了一個軟件看門狗C++類(使用Qt)。我用一個簡單的多線程程序對它進行了測試,但是我想在將代碼集成到實際應用程序中之後再測試代碼。如果我可以停止調試器的線程,那將簡化這個測試階段。 :)

乾杯 塞爾吉奧

+7

**道歉**更準確的谷歌搜索讓我找到這個鏈接:(http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html#Non_002dStop-Mode)似乎回答我的題。乾杯 – sergico 2012-02-02 10:18:44

+5

這是可以發佈你的問題的答案。請做。 – 2012-02-02 10:40:11

+0

[不停止gdb中的所有線程]的可能的重複(http://stackoverflow.com/questions/3666331/not-stopping-all-threads-in-gdb) – 2012-02-02 20:22:54

回答

3

使用此命令序列運行或連接到您的程序之前:

  • 啓用異步接口:
    設定的目標 - 異步1

  • 如果使用CLI,分頁不間斷:
    設置分頁關閉

  • 打開它:
    設置馬不停蹄的

使用這些命令來操縱不停模式設置:

  • 啓用不停模式選擇:
    設置不停機

  • 禁止選擇不停機模式:
    組非下車

  • 顯示當前不停啓用設置:
    表明不停

參考文獻:
http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html#Non_002dStop-Mode

0

您可以使用TotalView軟件調試器來做到這一點

0

如果這種小的變化是好的,你可以發送一個STOP信號的線程(而不是gdb命令的gdb - 變體)並調試其他一切運行。信號CONT讓線程繼續。

相關問題