WinDbg知多少

下載winsdksetup.exe 他挎,雙擊,選擇Debugging Tools for Windows安裝捡需。

  • 64位系統(tǒng)抓64位進(jìn)程dump办桨,用64位windbg來分析。64位系統(tǒng)抓32位進(jìn)程dump站辉,用32位windbg來分析
  • 用VS命令行執(zhí)行where sos.dll 找到sos.dll路徑
  • SOS does not support the current target architecture
    這個錯誤的原因是用了32位的任務(wù)管理器抓的32位的dump文件呢撞。
    需要用64位的任務(wù)管理器抓32位的dump文件(C:\Windows\SysWOW64\taskmgr.exe)
  • lmf指令列出當(dāng)前進(jìn)程中加載的所有DLL文件和對應(yīng)的路徑
  • lmvm 查看DLL/EXE文件信息,參數(shù)為某個dll文件名稱
  • 使用.loadby sos mscorwks 指令用于加載.Net 3.5版本及以下模塊
  • 使用.loadby sos clr指令用于加載.Net 4.0版本及以上模塊
  • 指定symbol search path 設(shè)置符號服務(wù)器與符號緩存SRV*D:\symbols*http://msdl.microsoft.com/download/symbols
    也可以在命令行執(zhí)行
    .symfix d:\symbols
  • lmv mclr查看當(dāng)前dump所需環(huán)境

The version of SOS does not match the version of CLR you are debugging?
根據(jù)dump來源系統(tǒng)版本從sos下載路徑找到對應(yīng)版本的mscordacwks.dll饰剥、sos.dll下載到本地殊霞,并重命名為mscordacwks.dll、sos.dll汰蓉,在對應(yīng)版本的Windbg的安裝路徑下創(chuàng)建目錄绷蹲,比如下載的是4.0.30319.1026這個版本的sos.dll,就在目錄下創(chuàng)建clr1026文件夾古沥,并將下載的文件放入該目錄瘸右,然后執(zhí)行.load clr1026\sos.dll(注意目錄名),即可加載正確版本的sos岩齿。

常用命令

!help sos指令幫助
!threads 顯示所有線程
!threadpool(!tp) 顯示程序池信息
!ProcInfo 顯示進(jìn)程信息
!dumpheap 顯示托管堆的信息
!dumpheap -stat 檢查當(dāng)前所有托管類型的統(tǒng)計信息
!dumpheap -type Person –stat 在堆中查找指定類型(person)對象太颤,注意大小寫敏感
!clrstack 顯示調(diào)用棧
!clrstack -p 顯示調(diào)用棧,同時顯示參數(shù)
!clrstack 只顯示托管代碼盹沈,而kb只顯示非托管代碼
!dumpobj(!do) 顯示一個對象的內(nèi)容
!dumparray(!da) 顯示數(shù)組
!DumpStackObjects(!dso) 當(dāng)前線程對象分配過程
!syncblk 顯示同步塊
!runaway 顯示線程cpu時間
!gcroot 跟蹤對象內(nèi)存引用
!pe 打印異常
!ObjSize 查看對象大小 ObjSize 用于知道對象地址時龄章,查看該對象的大小吃谣。
!GCRoot 是一個非常有用的命令,它能夠幫助我們發(fā)現(xiàn)某對象上目前還存在的有效引用做裙。這也是為什么GC還不回收這個對象的原因岗憋。這個信息可以很好的幫助我們分析那些本應(yīng)該沒有引用,但卻一直還存在有效引用的對象锚贱,由此發(fā)現(xiàn)我們代碼中潛在的內(nèi)存泄漏仔戈,同時我們也可以觀察到哪些對象是目前沒有引用了。
~*k 結(jié)合~和k命令拧廊,來顯示所有線程的callstack
.cls 清屏
kb 顯示當(dāng)前線程的callstack

線程Hang住的常見原因

-線程池或工作線程集中在某個耗時的工作當(dāng)中监徘,或者被其他線程鎖住
核心問題,找到被hang住的線程
!threads
~* e!clrstack
!syncblk

CPU高

-如果與業(yè)務(wù)量沒有提升吧碾,有線程在長時間的處理
核心問題凰盔,找到占用CPU的線程
!runaway 找到占用CPU的線程
~*e!clrstack

線程死鎖出現(xiàn)的情況:

兩個鎖A,B倦春,
一個線程已經(jīng)拿到鎖A户敬,申請鎖B,
另一個線程已經(jīng)拿到鎖B睁本,申請鎖A
核心問題:找到鎖定的線程
!threads
!syncblk
~*e!clrstack

調(diào)試dump步驟

  1. 將dump文件拖入windbg
  2. 執(zhí)行.loadby sos clr.loadby sos mscorwks加載模塊
  3. 執(zhí)行!analyze -v 進(jìn)行異常分析

調(diào)試exe文件步驟

  1. Open Executeable..
  2. 執(zhí)行 sxe ld:clrjit
  3. 執(zhí)行 g
  4. 執(zhí)行.loadby sos clr

如何在IIS crash或者h(yuǎn)ang時候尿庐,dump 所有與IIS相關(guān)的memory?

當(dāng)IIS發(fā)生crash或者h(yuǎn)ang之后,如果有必要獲取此刻的memory dump添履。我們必須通過相應(yīng)的debug tool來獲得屁倔。相應(yīng)工具很多。推薦的是windbg暮胧。安裝之后,在其folder下问麸,有一個adplus.vbs腳本工具往衷。

  1. dump hang模式下的iis memory:
    在command console下面:
    key in: adplus -hang -iis -o c:\ Path_to_Put_Files_in -quiet
    則系統(tǒng)會listen iis。如果iis發(fā)生hang严卖,那么會自動收集與iis相關(guān)的memory保存至Path_to_Put_Files,然后exit.

  2. dump crash模式下的iis memory:
    在command console下面:
    key in: adplus -crash -iis -o c:\ Path_to_Put_Files_in -quiet
    則當(dāng)iis crash的時候席舍,系統(tǒng)會自動收集與iis相關(guān)的memery并保存至Path_to_Put_Files,然后exit.

!sym noisy
.reload

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哮笆,隨后出現(xiàn)的幾起案子来颤,更是在濱河造成了極大的恐慌,老刑警劉巖稠肘,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件福铅,死亡現(xiàn)場離奇詭異,居然都是意外死亡项阴,警方通過查閱死者的電腦和手機(jī)滑黔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人略荡,你說我怎么就攤上這事庵佣。” “怎么了汛兜?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵巴粪,是天一觀的道長。 經(jīng)常有香客問我粥谬,道長验毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任帝嗡,我火速辦了婚禮晶通,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哟玷。我一直安慰自己狮辽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布巢寡。 她就那樣靜靜地躺著喉脖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抑月。 梳的紋絲不亂的頭發(fā)上树叽,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音谦絮,去河邊找鬼题诵。 笑死,一個胖子當(dāng)著我的面吹牛层皱,可吹牛的內(nèi)容都是我干的性锭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼叫胖,長吁一口氣:“原來是場噩夢啊……” “哼草冈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓮增,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤怎棱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绷跑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拳恋,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年你踩,在試婚紗的時候發(fā)現(xiàn)自己被綠了诅岩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讳苦。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吩谦,靈堂內(nèi)的尸體忽然破棺而出鸳谜,到底是詐尸還是另有隱情,我是刑警寧澤式廷,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布咐扭,位于F島的核電站,受9級特大地震影響滑废,放射性物質(zhì)發(fā)生泄漏蝗肪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一蠕趁、第九天 我趴在偏房一處隱蔽的房頂上張望薛闪。 院中可真熱鬧,春花似錦俺陋、人聲如沸豁延。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诱咏。三九已至,卻和暖如春缴挖,著一層夾襖步出監(jiān)牢的瞬間袋狞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工映屋, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留苟鸯,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓秧荆,卻偏偏與公主長得像倔毙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乙濒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容