在使用Apache Zookeeper C運行時庫調試應用程序時,我在使用GDB中的默認全部停止模式設置斷點時遇到了問題。由於Zookeeper線程無法運行,服務器將超時會話並因此刪除您可能創建的任何臨時znode。使用非停止模式我可以防止發生這種情況,但是我失去了檢查任何非Zookeeper線程狀態的便利。有沒有辦法讓一個應用程序線程在GDB的斷點處繼續運行?
GDB中有一種方法可以指定一個(或多個)線程在命中斷點時將繼續在應用程序中運行,但其他線程將停止運行?這樣我就可以檢查我關心的線程的狀態,並忽略那些我想在後臺運行的狀態。
編輯:這本質上是not stopping all threads in gdb的重複。在那裏使用後臺命令和非停止模式的解決方案基本上解決了我的問題,因爲我可以隨時停止線程並異步重新啓動它們,所以也許我們應該關閉這個線程。
你的意思是... ...,但其他人將被停止«,對吧? – klickverbot
對。這個問題沒有清楚嗎?編輯:固定錯字 – tyree731