日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手

發(fā)布時(shí)間:2025/3/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SOS 調(diào)試命令手冊(cè)

擴(kuò)展加載命令?
命令描述
.loadby

.loadby sos clr?

.load

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll

?

對(duì)象審查命令?
命令描述

!DumpObj (do)

!DumpObj ? ? ? ? ? ? ? 顯示指定地址的對(duì)象的信息。

!DumpObj -nofields 在顯示結(jié)果中不顯示字段信息,這對(duì)類似 String 類型等非常有用

!DumpArray (da)

!DumpArray ? ? ? ? ? ? ? ? 檢查數(shù)組對(duì)象元素

!DumpArray -start ? ? ? ?可選項(xiàng),只支持一維數(shù)組,從指定索引處開(kāi)始顯示數(shù)組元素

!DumpArray -length ? ? ?可選項(xiàng),只支持一維數(shù)組,指定顯示元素的數(shù)量

!DumpArray -details ? ? ?可選項(xiàng),通過(guò)使用 !DumpObj 和 !DumpVC 來(lái)打印更多詳細(xì)信息

!DumpArray -nofields ? ?可選項(xiàng),僅在 -details 選項(xiàng)使用時(shí)有效,不顯示對(duì)象的字段信息

!DumpStackObjects (dso)

!DumpStackObjects ? ? ? ? ? ?顯示當(dāng)前調(diào)用棧上的所有托管對(duì)象的信息,可配合 k 或 CLRStack 命令使用

!DumpStackObjects -verify ?將對(duì)非靜態(tài)類中的所有字段進(jìn)行檢查

!DumpHeap

!DumpHeap 將遍歷 GC 堆對(duì)對(duì)象進(jìn)行分析。通過(guò)指定不同的選項(xiàng),可以查看特定的類型、數(shù)組和鎖。

? ? ? ? ? ? ? ? ? 如果不加任何選項(xiàng),該命令的輸出首先為堆中對(duì)象的列表,然后是包含已發(fā)現(xiàn)類型的列表、大小和數(shù)量的報(bào)表。

其中 “Free” 對(duì)象代表的是垃圾回收器可以使用的區(qū)域。如果此區(qū)域的大小超過(guò)30%則可能意味著出現(xiàn)了堆碎片。

這通常是由于某些對(duì)象被持有了較長(zhǎng)時(shí)間,并且結(jié)合了大量高頻率的內(nèi)存分配。

!DumpHeap 會(huì)針對(duì)此情況提供一個(gè)關(guān)于堆碎片化的警告。

-stat ? ? ? ? ? ? ?限定輸出為類型統(tǒng)計(jì)分析的匯總

-strings ? ? ? ? ?限定輸出為字符串類型的統(tǒng)計(jì)分析匯總

-short ? ? ? ? ? ?限定輸出僅為對(duì)象的地址,這將為串行化命令調(diào)試帶來(lái)便利

-min <size> ? ?忽略尺寸小于給定的 bytes 值的對(duì)象

-max <size> ? 忽略尺寸大于給定的 bytes 值的對(duì)象

-live ? ? ? ? ? ? ? 僅輸出仍然存活的對(duì)象

-dead ? ? ? ? ? ? 僅輸出已死亡的對(duì)象 (這些對(duì)象將在下一個(gè) Full GC 中被回收)

-thinlock ? ? ? ? ThinLocks 的報(bào)告 (參考 !SyncBlk)

-startAtLowerBound ? ? ? ? ? ? ?強(qiáng)制堆指向可使用的地址的低地址邊界

-mt <MethodTable address> ?僅列出包含 MethodTable 的對(duì)象

-type <partial type name> ? ? 僅列出對(duì)象類型字符串中包含給定子字符串的對(duì)象

start ? ? ? ? ? ? ? 從給定地址處開(kāi)始列出對(duì)象

end ? ? ? ? ? ? ? ? 從給定地址處停止檢索

start/end 的參數(shù)可以通過(guò) !EEHeap -gc 命令來(lái)獲取。例如,下面的圖中顯示列出大對(duì)象堆中的對(duì)象。

!DumpVC

!DumpVC <MethodTable address> <Address> ?

檢查值類型對(duì)象的字段,在 C# 中指的是 struct,存活于棧中或者被裝箱為 Object 后存放在 GC 堆中。

需要為 SOS 提供值對(duì)象的方法表地址,因?yàn)橹祵?duì)象與一級(jí)對(duì)象不同,一級(jí)對(duì)象的第一個(gè)字段即為方法表。

!GCRoot

!GCRoot [-nostacks] <Object address> ?查詢一個(gè)對(duì)象的所有引用根。

對(duì)象的引用根可能存在于如下位置:

  • 棧上
  • 包含在 GC 句柄中
  • 準(zhǔn)備被終結(jié)的對(duì)象中
  • 在上述三點(diǎn)中的對(duì)象的成員中
  • 在查詢引用根時(shí),首先在棧上查詢,然后是句柄表,最后是對(duì)象終結(jié)器中的隊(duì)列中的可達(dá)對(duì)象。

    注:!GCRoot 不會(huì)棧上的對(duì)象根進(jìn)行有效性校驗(yàn)。可以使用 !CLRStack 或 !U 來(lái)檢查對(duì)象是否仍在被使用。

    -nostacks ? 限定僅在句柄表和終結(jié)器隊(duì)列中查找。

    !ObjSize

    !ObjSize [<Object address>] ?

    如果不加參數(shù),!ObjSize 將列出托管線程中所有對(duì)象的尺寸。

    同時(shí),也會(huì)列出進(jìn)程中的所有?GC 句柄,和句柄指向?qū)ο蟮拇笮 ?/p>

    在計(jì)算對(duì)象的尺寸時(shí),!ObjSize 將計(jì)算對(duì)象及其所有子對(duì)象的大小。

    !FinalizeQueue

    !FinalizeQueue [-detail] | [-allReady] [-short]

    !FinalizeQueue ? 列出所有注冊(cè)為終結(jié)化的對(duì)象。

    GC 堆是按照代來(lái)劃分,此處同樣列出每代中將被終結(jié)的對(duì)象的數(shù)量。

    上圖中顯示了只有 0 代堆中包含了注冊(cè)終結(jié)對(duì)象。"(0015bc90->0015bca0)" 提示了對(duì)象指針的內(nèi)存查詢區(qū)域。

    -allReady ? 指定此選項(xiàng)后,將列出所有準(zhǔn)備終結(jié)化的對(duì)象,無(wú)論其是否被標(biāo)注為在當(dāng)前輪 GC 還是下一輪 GC。

    ? ? ? ? ? ? ? ? 那些已經(jīng)不在?"Ready for finalization" 列表中的對(duì)象則已經(jīng)失去了引用根。

    ? ? ? ? ? ? ? ? 這個(gè)選項(xiàng)可能會(huì)有些開(kāi)銷,因?yàn)槠鋾?huì)驗(yàn)證是否終結(jié)化隊(duì)列中的對(duì)象是否仍然存在引用根。

    -short ? ? ? 限定輸出僅為對(duì)象的地址。

    ? ? ? ? ? ? ? ? 如果與 -allReady 選項(xiàng)同時(shí)使用,則將列出所有存在終結(jié)器中并且不再是引用根的對(duì)象。

    ? ? ? ? ? ? ? ? 如果單獨(dú)使用,則將列出?"Ready for finalization" 隊(duì)列中的所有對(duì)象。

    -detail ? ? ? 顯示額外的信息,例如需要被終結(jié)器清理的緩存的數(shù)據(jù)結(jié)構(gòu)等。

    !PrintException (pe)

    !PrintException [-nested] [-lines] [<Exception object address>]

    !PrintException 將對(duì)任意 System.Exception 的衍生對(duì)象的字段進(jìn)行格式化。

    ? ? ? ? ? ? ? ? ? ? ? ?例如,將對(duì) _stackTrace 字段進(jìn)行格式化。

    ? ? ? ? ? ? ? ? ? ? ? ?如果不加任何參數(shù),!PrintException?將查找當(dāng)前線程上最有一個(gè)出現(xiàn)的異常。

    ? ? ? ? ? ? ? ? ? ? ? ?這與使用 !Threads 中顯示的異常是相同的。

    -nested 顯示嵌套的異常信息。

    -lines ? ?顯示異常的可用的源信息。

    !TraverseHeap

    !TraverseHeap [-xml] [-verify] <filename>

    !TraverseHeap ?將以一種 CLR Profiler 可理解的格式將 GC 堆信息輸出到文件。

    可以在如下鏈接下載 CLR Profiler:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=86CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&displaylang=en

    CLR Profiler 將以圖形化的方式來(lái)幫助分析應(yīng)用程序 GC 堆的狀態(tài)。

    -verify ?將進(jìn)行更多合法性檢測(cè),可在有任何疑似堆腐化時(shí)使用。

    -xml ? ? 輸出格式指定為 XML 格式。

    數(shù)據(jù)結(jié)構(gòu)審查命令?
    命令描述

    !DumpDomain

    !DumpDomain [<Domain address>]

    在無(wú)參數(shù)時(shí),!DumpDomain 將列出進(jìn)程中所有的 AppDomain 。同時(shí)也會(huì)遍歷所有已加載的程序集。

    在應(yīng)用程序的的 AppDomain 之外,還存在另外兩個(gè)特殊的應(yīng)用程序域:Shared Domain 和 System Domain。

    所列出的任意程序集的指針均可用于 !DumpAssembly 命令。任何 AppDomain 指針均可被使用于 !DumpDomain 命令。

    !EEHeap

    !EEHeap [-gc] [-loader] ?遍歷進(jìn)程內(nèi)存中的 CLR 數(shù)據(jù)結(jié)構(gòu)。

    !EEHeap -gc

    !EEHeap -loader

    !Name2EE

    !Name2EE <module name> <type or method name>

    !Name2EE <module name>!<type or method name>

    !Name2EE 用于將給定的類名稱轉(zhuǎn)換為 MethodTable 或 EEClass 的地址。或?qū)⒎椒Q轉(zhuǎn)換為 MethodDesc。

    !SyncBlk

    !SyncBlk [-all | <syncblk number>]

    SyncBlock 負(fù)責(zé)持有一些不是為每個(gè)對(duì)象都需創(chuàng)建的額外信息,例如 COM Interop 數(shù)據(jù)、HashCodes、鎖信息等。

    例如,假設(shè)有如下代碼:

    lock (MyObject) {... }

    則將設(shè)置 MyObject 為當(dāng)前線程所擁有。一個(gè) SyncBlock 將會(huì)為 MyObject 創(chuàng)建,并且包含線程的宿主信息等。

    如果另外一個(gè)線程試圖執(zhí)行同樣的代碼,該線程將不能進(jìn)入該 Block 中直到上一個(gè)線程退出。

    這將使 !SyncBlk 在檢測(cè)托管線程死鎖時(shí)非常有用途。例如有如下代碼情形:

    Resource r1 = new Resource(); Resource r2 = new Resource();lock (r1) {lock (r2){...} }lock (r2) {lock (r1){...} }

    通過(guò)上面的描述可以了解到,線程 e04 持有著對(duì)象 00a7a194,而線程 ab8 持有著對(duì)象 00a7a1a4。

    再結(jié)合調(diào)用棧信息可發(fā)現(xiàn)死鎖。

    此處,可通過(guò)運(yùn)行 !U 或 !DumpHeap -ThinLock 獲取更多信息。

    !DumpMT

    !DumpMT [-MD] <MethodTable address> ?顯示方法表。每個(gè)托管對(duì)象都在其起始位置包含一個(gè)方法表指針。

    -MD 顯示對(duì)象中定義的方法列表。

    !DumpClass

    !DumpClass <EEClass address> 顯示 EEClass 中定義的屬性和字段類型。

    EEClass 是一種描述對(duì)象類型的數(shù)據(jù)結(jié)構(gòu)。

    !Token2EE

    !Token2EE <module name> <token> ?將 Token 元數(shù)據(jù)轉(zhuǎn)換為 MethodTable 或 MethodDesc。

    !EEVersion

    顯示 CLR 版本。同時(shí)也顯示應(yīng)用程序代碼是運(yùn)行在?"Workstation" 或 "Server" 模式。

    類似的功能可以通過(guò)命令:"lm v m clr"

    !DumpModule

    !DumpModule [-mt] <Module address> ?通過(guò)模塊地址獲取模塊信息。

    -mt 顯示模塊內(nèi)定義的類型信息。

    !ThreadPool

    顯示線程池的基本信息,包括隊(duì)列中請(qǐng)求的數(shù)量、完成端口線程的數(shù)量和計(jì)時(shí)器的數(shù)量。

    !DumpAssembly

    !DumpAssembly <Assembly address> 顯示指定地址程序集的信息。

    !DumpSigElem

    !DumpSigElem <sigaddr> <moduleaddr> ?顯示簽名對(duì)象中的一個(gè)指定元素信息。

    !DumpRuntimeTypes

    !DumpRuntimeTypes ?從 GC 堆中尋找 System.RuntimeType 類型的對(duì)象,并且打印類型名稱和方法表。

    !DumpSig

    !DumpSig <sigaddr> <moduleaddr> ?顯示給定地址的方法或字段的簽名信息。

    !RCWCleanupList

    !RCWCleanupList [address] ?顯示在下一次清理周期內(nèi)回收的 COM 對(duì)象信息。

    RuntimeCallableWrapper 是 CLR 內(nèi)部的數(shù)據(jù)結(jié)構(gòu),用于宿主 COM 對(duì)象。

    通過(guò) System.__ComObject 類向托管代碼暴露。

    當(dāng)相應(yīng)的對(duì)象被 GC 回收之后,相關(guān)的 COM 對(duì)象引用也不在需要,所以相應(yīng)的 RCW 也需要被清理。

    !DumpIL

    !DumpIL <Managed DynamicMethod object> |?
    ? ? ? ? ? ? ? <DynamicMethodDesc pointer> |
    ? ? ? ? ? ? ? <MethodDesc pointer> |
    ? ? ? ? ? ? ? ?/i <IL pointer>

    打印托管方法的 IL 代碼。在調(diào)試 DynamicMethod 時(shí)非常有效,但同樣適合 non-DynamicMethod。

    可以在下列 4 種條件下使用:

  • 如果使用了 System.Reflection.Emit.DynamicMethod 對(duì)象,則可將指針作為第一個(gè)參數(shù)。
  • 如果使用了 DynamicMethodDesc 指針,可以打印相關(guān)動(dòng)態(tài)方法的 IL 代碼。
  • 如果使用了常規(guī)的 MethodDesc,可以將其作為第一個(gè)參數(shù)來(lái)查看 IL 代碼。
  • 如果有直接的 IL 指針,則可使用 /i 選項(xiàng)和 IL 地址作為參數(shù)。
  • !DumpRCW

    !DumpRCW <RCW address> ? ? ? ? ? ? ? ? 顯示 RuntimeCallableWrapper 的信息。

    !DumpCCW

    !DumpCCW <CCW address or COM IP> ?顯示 COMCallableWrapper 的信息。
    代碼堆棧審查命令?
    命令描述

    !Threads

    !Threads [-live] [-special] ?列出進(jìn)程中所有的托管線程。

    -live ? ? ? ?可選項(xiàng)。僅顯示活躍的線程。

    -special ? 可選項(xiàng)。顯示由 CLR 創(chuàng)建的特殊線程,這些線程有可能不是托管線程。

    ? ? ? ? ? ? ? 例如 GC 線程、調(diào)試器線程、終結(jié)器線程、應(yīng)用程序域卸載線程、線程池計(jì)時(shí)器線程等。

    ID 列涵義:

  • 調(diào)試器用 ID
  • CLR 線程 ID
  • OS 線程 ID
  • !ThreadState

    !ThreadState value ? 顯示線程狀態(tài)

    可能的線程狀態(tài)包括:

    • Thread Abort Requested
    • GC Suspend Pending
    • User Suspend Pending
    • Debug Suspend Pending
    • GC On Transitions
    • Legal to Join
    • Yield Requested
    • Hijacked by the GC
    • Blocking GC for Stack Overflow
    • Background
    • Unstarted
    • Dead
    • CLR Owns
    • CoInitialized
    • In Single Threaded Apartment
    • In Multi Threaded Apartment
    • Reported Dead
    • Fully initialized
    • Task Reset
    • Sync Suspended
    • Debug Will Sync
    • Stack Crawl Needed
    • Suspend Unstarted
    • Aborted
    • Thread Pool Worker Thread
    • Interruptible
    • Interrupted
    • Completion Port Thread
    • Abort Initiated
    • Finalized
    • Failed to Start

    !IP2MD

    !IP2MD <Code address> ?根據(jù)給定的托管 JITTED 代碼,查找相關(guān)的?MethodDesc。

    上面的例子中,我們通過(guò) Mainy.Main 的返回地址來(lái)尋找相關(guān)的方法信息。

    !U

    !U [-gcinfo] [-ehinfo] [-n] <MethodDesc address> | <Code address>

    根據(jù)給定方法的 MethodDesc 指針,輸出反匯編代碼。

    -gcinfo ?同時(shí)獲得方法的?GCInfo 信息。相關(guān)信息可通過(guò) !GCInfo 獲得。

    -ehinfo ?同時(shí)獲得方法的異常信息。相關(guān)信息可通過(guò) !EHInfo 獲得。

    -n ? ? ? ? 不顯示行號(hào)和符號(hào)等信息。

    !DumpStack

    !DumpStack [-EE] [-n] [top stack [bottom stack]] ? 提供詳細(xì)甚至過(guò)于冗余混淆的調(diào)用棧信息。

    -EE ?僅顯示托管函數(shù)。

    -n ? ?不顯示行號(hào)或符號(hào)信息。

    !EEStack

    !EEStack [-short] [-EE] ?這個(gè)命令用于在進(jìn)程內(nèi)的所有線程上運(yùn)行 !DumpStack。

    -EE ? ? ?該選項(xiàng)將直接被傳遞給 !DumpStack 命令。

    -short ?嘗試僅顯示可能感興趣的線程,包括:

  • 線程獲取了一個(gè)鎖
  • 線程為 "jijacked" 狀態(tài),并允許被 GC 回收
  • 線程當(dāng)前運(yùn)行至托管代碼
  • !CLRStack

    !CLRStack [-a] [-l] [-p] [-n]

    !CLRStack [-a] [-l] [-p] [-i] [variable name] [frame]

    !CLRStack 試圖僅為托管代碼提供真實(shí)的調(diào)用棧信息。

    -p ? ?顯示托管函數(shù)的參數(shù)信息。

    -l ? ? 顯示幀內(nèi)局部變量的信息。

    -a ? ?= -p + -l 的組合。

    -n ? ?不顯示行信息和符號(hào)信息。

    !GCInfo

    !GCInfo (<MethodDesc address> | <Code address>) 用于診斷 JIT 編譯器是否存在Bug。

    !EHInfo

    !EHInfo (<MethodDesc address> | <Code address>) ?用于顯示 JITTED 方法的異常處理部分。

    !BPMD

    !BPMD [-nofuturemodule] <module name> <method name> [<il offset>]

    !BPMD <source file name>:<line number>

    !BPMD -md <MethodDesc>

    !BPMD -list

    !BPMD -clear <pending breakpoint number>

    !BPMD -clearall

    !BPMD 用于提供托管代碼的斷點(diǎn)支持。

    !COMState

    顯示進(jìn)程的?COM Apartment Model。
    垃圾回收歷史審查命令?
    命令描述

    !HistInit

    !HistInit?在運(yùn)行任何 Hist 族命令之前,需要先根據(jù)被調(diào)試程序的壓縮日志中初始化 SOS 結(jié)構(gòu)。

    !HistRoot

    !HistRoot <root> ?顯示 promotion 和 relocation 信息。

    !HistObj

    !HistObj <obj_address> ?從日志中檢查 GC relocation 鏈。

    !HistObjFind

    !HistObjFind <obj_address> ?從日志中檢索與對(duì)象的 relocation 相關(guān)的所有信息。

    !HistClear

    !HistClear ?釋放用于 Hist 族命令的所有資源。通常無(wú)需顯式的調(diào)用此命令,因?yàn)槊看?HistInit 會(huì)首先清理資源。

    診斷工具命令?
    命令描述

    !VerifyHeap

    !VerifyHeap 是一個(gè)用于檢測(cè) GC 堆中是否有腐化跡象的診斷工具。

    其以如下的模式逐個(gè)的走查對(duì)象:

    !VerifyObj

    !VerifyObj <object address> 是一個(gè)用于檢查被傳遞的對(duì)象參數(shù)是否存在腐化的跡象的診斷工具。

    !FindRoots

    !FindRoots -gen <N> | -gen any | <object address> 用于查找對(duì)象的引用根的診斷工具。

    !HeapStat

    !HeapStat [-inclUnrooted | -iu] ?顯示GC堆中每個(gè)代的大小和總和,同時(shí)顯示空閑空間的大小。

    -inclUnrooted ?報(bào)告中包含那些在 GC 堆中已標(biāo)識(shí)為不再引用的托管對(duì)象。

    !GCWhere

    !GCWhere <object address> ?顯示指定對(duì)象在 GC 堆中的位置。

    !ListNearObj (lno)

    !ListNearObj <object address> ?用于顯示對(duì)象前后的對(duì)象的診斷工具。

    !GCHandles

    !GCHandles [-type handletype] [-stat] [-perdomain] ?提供對(duì)進(jìn)程中 GCHandles 的統(tǒng)計(jì)分析。

    -stat ? ? ? ? ? ?僅顯示統(tǒng)計(jì)信息,而不列出句柄和其指向的信息。

    -perdomain ? 根據(jù) AppDomain 來(lái)顯示統(tǒng)計(jì)信息。

    -type ? ? ? ? ? ?句柄類型的過(guò)濾。

    可用的句柄類型包括:

    • Pinned
    • RefCounted
    • WeakShort
    • WeakLong
    • Strong
    • Variable
    • AsyncPinned

    !GCHandleLeaks

    !GCHandleLeaks ?幫助檢測(cè) GCHandle 泄漏的工具。

    !FindAppDomain

    !FindAppDomain <Object address> ?嘗試根據(jù)對(duì)象查找出 AppDomain。

    !SaveModule

    !SaveModule <Base address> <Filename> ?將內(nèi)存鏡像保存至文件。

    !ProcInfo

    !ProcInfo [-env] [-time] [-mem] ?列出進(jìn)程中的環(huán)境變量,內(nèi)核 CPU 時(shí)間,內(nèi)存使用率等。

    !StopOnException (soe)

    !StopOnException [-derived]?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ?[-create | -create2]?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ?<Exception>?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ?[<Pseudo-register number>]

    !StopOnException 當(dāng)需要調(diào)試器在遇到特定的托管異常時(shí)停止。

    例如,當(dāng)遇到?System.OutOfMemoryException 時(shí)停止,而遇到其他異常時(shí)繼續(xù)運(yùn)行。

    !DumpLog

    !DumpLog [-addr <addressOfStressLog>] [<Filename>] ?允許將 CLR in-memory stress log 日志寫(xiě)入文件。

    通過(guò)下面注冊(cè)表內(nèi)的信息更改 Stress Log 設(shè)置:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework:

    (DWORD) StressLog = 1

    (DWORD) LogFacility = 0xffffffbf?

    (DWORD) StressLogSize = 65536

    (DWORD) LogLevel = 6

    LogFacility 定義:

    • GC    ? ? ?? ?0x00000001
    • GCINFO ? ? ?? ?0x00000002
    • STUBS ? ? ??? ?0x00000004
    • JIT ? ? ? ? ? ??? ?0x00000008
    • LOADER ? ??? ?0x00000010
    • METADATA?? ??0x00000020
    • SYNC ? ? ? ??? ?0x00000040
    • EEMEM ? ? ??? ?0x00000080
    • GCALLOC ??? ?0x00000100
    • CORDB ? ? ?? ?0x00000200
    • CLASSLOADER 0x00000400
    • CORPROF ? ?? ?0x00000800
    • REMOTING ??? ?0x00001000
    • DBGALLOC ?? ?0x00002000
    • EH ? ? ? ? ? ? ?? ?0x00004000
    • ENC ? ? ? ? ? ?? ?0x00008000
    • ASSERT ? ? ?? ?0x00010000
    • VERIFIER ? ? ? ?0x00020000
    • THREADPOOL ?0x00040000
    • GCROOTS ? ? ? 0x00080000
    • INTEROP ? ? ? ? 0x00100000
    • MARSHALER ? ?0x00200000
    • IJW ? ? ? ? ? ? ? ?0x00400000
    • ZAP ? ? ? ? ? ? ? ?0x00800000
    • STARTUP ? ? ? ? 0x01000000
    • APPDOMAIN ? ? 0x02000000
    • CODESHARING 0x04000000
    • STORE ? ? ? ? ? ? 0x08000000
    • SECURITY ? ? ? ?0x10000000
    • LOCKS ? ? ? ? ? ? 0x20000000
    • BCL ? ? ? ? ? ? ? ? 0x40000000

    !VMMap

    !VMMap ?遍歷虛擬地址空間,列出 Region Protection 類型。

    !VMStat

    !VMStat ?提供虛擬地址空間的綜合報(bào)告。

    !MinidumpMode

    !MinidumpMode <0 or 1>

    通過(guò) ".dump /m" 或 ".dump" 來(lái)獲得 CLR 數(shù)據(jù)的子集,僅適合使用 SOS 的命令的子集,一些 SOS 命令可能失敗。

    默認(rèn)值為 0。

    !AnalyzeOOM (ao)

    !AnalyzeOOM 顯示最后一個(gè) OOM 的信息。

    轉(zhuǎn)載于:https://www.cnblogs.com/wodemingtian/p/10449798.html

    總結(jié)

    以上是生活随笔為你收集整理的WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 伊人91 | 香蕉国产精品 | 超碰日日干 | 日日爱夜夜操 | 我和我的太阳泰剧在线观看泰剧 | 不卡视频一区二区 | 四虎影院黄色 | 国产av一区二区三区精品 | 香蕉手机网 | 亚洲天堂视频在线观看 | 国久久久 | 欧美粗又大 | 国产大尺度视频 | 久久婷婷六月 | 免费在线播放视频 | 麻豆www.| 第一页在线 | 国产精品久久国产精麻豆96堂 | 国产精品调教视频 | 天堂中文在线资 | 国产精品婷婷午夜在线观看 | 欧美性生活一区二区三区 | 99爱视频 | 三级在线网站 | 双腿张开被9个男人调教 | 日韩在线一二 | 一本一道精品欧美中文字幕 | 久久激情免费视频 | 亚洲激情免费 | 中文免费av | 开心色婷婷 | 999这里有精品 | 69精品人妻一区二区三区 | 电影《两个尼姑》免费播放 | 神马午夜在线 | 久久精品国产亚洲av麻豆 | 国产第一av| 国产做爰视频免费播放 | 非洲黄色片 | 色图自拍偷拍 | 久久久久久久精 | 超碰男人天堂 | 日韩激情网 | √资源天堂中文在线 | 欧美成人vr18sexvr| 久久精品国产亚洲a | 一区二区三区在线观看av | 亚洲天堂第一区 | 操伊人| 国产欧美亚洲精品 | 熟妇高潮一区二区高潮 | 尤物在线免费视频 | 国产孕交 | 一级激情视频 | 天天狠天天透 | 人人舔人人插 | 久久久视屏 | 精品国产综合 | 亚洲校园激情 | 99爱国产 | 日韩欧美国产一区二区 | 被室友玩屁股(h)男男 | 日本一区欧美 | 成人自拍网站 | 97精品一区二区 | av观看国产 | 一级成人免费 | 亚洲AV无码成人精品区麻豆 | 五月天色网站 | 在线免费国产视频 | 欧美黄色一级视频 | 国产盗摄一区二区三区在线 | 国产精品玖玖玖 | tube极品少妇videos | 亚洲欧美日韩国产一区二区 | 国产在线观看www | 美女高潮网站 | 在线不卡日韩 | 不卡视频一区二区 | 激情久久av一区av二区av三区 | 国产日韩欧美综合在线 | 国产麻豆精品一区二区 | 国产成人精品在线播放 | 懂色中文一区二区在线播放 | 日韩有码第一页 | 麻豆国产一区二区 | 四虎色播 | 九九九网站 | 色偷偷影院 | 黄色h视频 | 最近国语视频在线观看免费播放 | 一区二区小视频 | 美女被啪羞羞粉色视频 | 久久亚洲日本 | 伊人久久网站 | 午夜免费激情视频 | 91原视频 | 一本加勒比波多野结衣 | 嫩草av91|