1. 程式人生 > >在vs中執行緒死鎖時的一些除錯經驗

在vs中執行緒死鎖時的一些除錯經驗

有時候因為一些操作導致執行緒死鎖 了,也沒有斷點提示在哪裡死鎖,這時候可以點選“全部中斷”按鈕,如下圖(類似暫停的那個按鈕):


這時候再看除錯視窗中的執行緒視窗:


留意黃色箭頭所指執行緒就是死鎖的執行緒,那這大概就能猜出問題在哪兒了。

但是有可能會死鎖在一些windows的win32執行緒,但這也肯定是因為程式中其他執行緒造成的,這時候可以觀察一下執行緒視窗中還剩下那些執行緒,對於可疑的執行緒可以看看執行緒都停在什麼位置:


同時觀察一下呼叫的堆疊,導致死鎖的執行緒通常就會停在死鎖的那個語句上。