[轉載]Windbg常用命令及分析套路

Windbg常用命令及分析套路

自己也在使用windbg分析問題护奈,但是屬于剛入門所以轉發(fā)下大神的總結:https://www.cnblogs.com/fj365/p/13295453.html

常用
!threadpool 查看線程池CPU使用量

!threads 查看所有托管線程情況

!clrstack 某個線程托管代碼的調用棧情況

~*e!clrstack 所有線程托管代碼的調用棧情況

!runaway 查看線程占用CPU時間

~<number style="margin: 0px; padding: 0px;"> s 切換到指定線程(number為具體哪個線程的ID)</number>

!dumpstackobjects(!dso) 本線程調用棧所有對象實例

!dumpdomain 顯示所有域里的程序集泡嘴,或者根據參數獲取指定域。

!savemodule 根據具體程序集地址逆济,把當前程序集的代碼生成到指定文件

!PrintException(!pe) 顯示在當前線程上引發(fā)的最后一個異常錯誤信息

!VerifyHeap 檢查垃圾回收器堆中是否有損壞跡象酌予,并顯示找到任何錯誤

!SyncBlk –all 顯示所有SyncBlock 結構情況

查看對象
基本
!DumpObj <對象地址> 查看對象

!DumpArray <對象地址> 查看數組

!sosex.mdt <對象地址> 查看對象

!sosex.mdt -e <對象地址> 查看數組

!netext.wdo <對象地址> 查看對象

限定大小
!dumpheap -min <size1 bytes="" style="margin: 0px; padding: 0px;">-max <size2 bytes="" style="margin: 0px; padding: 0px;">查看大小在size1~size2的對象</size2></size1>

!dumpheap -min <size bytes="" style="margin: 0px; padding: 0px;">查看大于size字節(jié)的對象</size>

限定類型
!dumpheap -mt <methodtable address="" style="margin: 0px; padding: 0px;">-min <size1 bytes="" style="margin: 0px; padding: 0px;">-max</size1></methodtable>

查看MethodTable結構的對象

!dumpheap –type<partial type="" name="" style="margin: 0px; padding: 0px;"></partial>

查看類型名字子串匹配指定字符串的對象

限定地址范圍
!dumpheap start [end] 查看指定地址范圍的對象

查看內存
!eeheap -gc 查看GC堆,查看GC堆上的內存占用是多大

!eeheap –loader 查看Loader堆

!dumpheap –stat GC堆上的統(tǒng)計,看GC堆上存活的對象是那些

!dumpheap -mt <methodtable address="" style="margin: 0px; padding: 0px;">查看該地址上的對象</methodtable>

!dumpheap –type 通過 type 參數查看內存中指定類型的對象

!gcroot <對象地址> 得到這個對象的引用"根"

!objsize <對象地址> 查看對象占用多大的內存(不一定準)

!name2ee TestClass.exeTestClass.Program.test //顯示test方法相關的地址

!dumpmt -md 00976d48 //得到類的成員函數詳細信息

!dumpmt 找到相關MethodTable處的有關信息

!dumpmd 根據MethodDesc找到相關模塊信息,比如MethodTable.

!dumpdomain 顯示所有域里的程序集奖慌,或者根據參數獲取指定域抛虫。

!dumpil 00973028 顯示這個方法被編譯器編譯之后的IL代碼

!dumpmodule 1ee30010 查看某個模塊的詳細信息

檢查GC的終結隊列及線程
!FinalizeQueue 顯示為終結(finalization)而登記的所有對象。

                  重點看“Ready for finalization XX objexts”

!ThreadPool 顯示托管線程池的有關信息简僧。

如果“CPU utilization 81%”表示當前很可能在執(zhí)行GC回收建椰,此時Work Request in Queue會增長(因為CPU超過80%不會創(chuàng)建新線程)。

!Threads 顯示進程中所有的托管線程岛马。

關注Exception列棉姐,標記為“(Finalizer)”的表示這條為終結器線程、標記有“(GC)”的表示這條線程上在執(zhí)行GC操作啦逆、

查看線程調用
查看調用堆棧伞矩,然后進一步查看相關調用方法的參數,推斷調用邏輯夏志;

~<線程>e!clrstack 查線程調用堆棧

~*e!clrstack 查所有線程調用堆棧

~<線程>e!clrstack –a 查線程調用堆棧(含參數對象地址)

~<線程>e!dso 查線程上所有對象–>根據類型找到要查看對象的地址

!do <對象地址> 查看對象信息

!sosex.mdt–e <對象地址> 查看對象信息(數組)

查看異常
PrintException [-nested][<exception object="" address="" style="margin: 0px; padding: 0px;">]</exception>

-或者-

PE [-nested][<exception object="" address="" style="margin: 0px; padding: 0px;">]</exception>

編排格式并顯示在指定地址上的任何Exception類派生對象的字段乃坤。如果你沒有指定一個地址,PrintException命令顯示當前線程上最近拋出的異常沟蔑。

-nested 選項詳細顯示嵌套的異常對象湿诊。

你可以使用這個命令編排格式并查看_stackTrace字段,這是一個二元數組瘦材。

!analyze -v -hang

   displays information about the currentexception or bug check.

.foreach (ex{!dumpheap -type Exception -short}){.echo“********************************”;!pe -nested ${ex} }

定位“鎖”
!sosex.dlk 檢查死鎖

!SyncBlk

擴展
sosex
http://www.stevestechspot.com/default.aspx

先創(chuàng)建堆上對象的索引!bhi

!mdt -e 00000000450bc560

netext
http://netext.codeplex.com/SourceControl/latest

Psscor4
https://www.microsoft.com/en-us/download/details.aspx?id=21255

編寫Windbg擴展
https://www.codeproject.com/Articles/6522/Debug-Tutorial-Part-Writing-WINDBG-Extensions

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末厅须,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子食棕,更是在濱河造成了極大的恐慌朗和,老刑警劉巖错沽,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異例隆,居然都是意外死亡甥捺,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門镀层,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镰禾,“玉大人,你說我怎么就攤上這事唱逢∥庹欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵坞古,是天一觀的道長备韧。 經常有香客問我,道長痪枫,這世上最難降的妖魔是什么织堂? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮奶陈,結果婚禮上易阳,老公的妹妹穿的比我還像新娘致板。我一直安慰自己彬向,他們只是感情好蛇摸,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布需忿。 她就那樣靜靜地躺著,像睡著了一般窒百。 火紅的嫁衣襯著肌膚如雪撮胧。 梳的紋絲不亂的頭發(fā)上是钥,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天僻肖,我揣著相機與錄音肖爵,去河邊找鬼。 笑死檐涝,一個胖子當著我的面吹牛遏匆,可吹牛的內容都是我干的。 我是一名探鬼主播谁榜,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凡纳!你這毒婦竟也來了窃植?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤荐糜,失蹤者是張志新(化名)和其女友劉穎巷怜,沒想到半個月后葛超,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡延塑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年绣张,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片关带。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡侥涵,死狀恐怖,靈堂內的尸體忽然破棺而出宋雏,到底是詐尸還是另有隱情芜飘,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布磨总,位于F島的核電站嗦明,受9級特大地震影響,放射性物質發(fā)生泄漏蚪燕。R本人自食惡果不足惜娶牌,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馆纳。 院中可真熱鬧诗良,春花似錦、人聲如沸厕诡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灵嫌。三九已至壹罚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寿羞,已是汗流浹背猖凛。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绪穆,地道東北人辨泳。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像玖院,于是被迫代替她去往敵國和親菠红。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容