天天看點

WinDbg調試CPU占用高的問題 試驗+實戰 《第七篇》一、High CPU試驗

  1、示例代碼

  2、運作控制台程式後,抓取3次Dump,最好每次間隔幾分鐘。

  3、分别對每個Dump執行如下指令。

  從上面的輸出可以看到,線程0的CPU時間不斷增加,CPU高占用很可能是由于線程0正在執行的代碼有問題造成的。

  可以用!clrstack指令檢視一下目前的調用堆棧以及其上的局部變量和值。

  當執行!clrstack時,報出了如下提示:

  這不是我想要的,加載mscorwks失敗。後來經過調試發現,原來是第一步就.load時就錯了,因為我的那段代碼用的是vs2010。是以應該加載.net

frameword 4.0。

  是以,最初應該執行的.load

C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/sos.dll

  然後在執行!clrstack

  第三個Dump

  第二個Dump

  第一個Dump:

  不知道為什麼,我的第三個Dump并沒有出現HighCPU的提示,也許是我的電腦組態有點高吧。不過,出問題的代碼已可以看得到,就在Main方法裡。隻需要細細檢視Main方法找到問題所在就OK了。

  學習自: