zoukankan      html  css  js  c++  java
  • windbg for CLR

    0:003> .load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll

     

    0:003> !help

    -------------------------------------------------------------------------------

    SOS is a debugger extension DLL designed to aid in the debugging of managed

    programs. Functions are listed by category, then roughly in order of

    importance. Shortcut names for popular functions are listed in parenthesis.

    Type "!help <functionname>" for detailed info on that function.

    Object Inspection                  Examining code and stacks

    -----------------------------      -----------------------------

    DumpObj (do)                       Threads

    DumpArray (da)                     CLRStack

    DumpStackObjects (dso)             IP2MD

    DumpHeap                           U

    DumpVC                             DumpStack

    GCRoot                             EEStack

    ObjSize                            GCInfo

    FinalizeQueue                      EHInfo

    PrintException (pe)                COMState

    TraverseHeap                       BPMD

    Examining CLR data structures      Diagnostic Utilities

    -----------------------------      -----------------------------

    DumpDomain                         VerifyHeap

    EEHeap                             DumpLog

    Name2EE                            FindAppDomain

    SyncBlk                            SaveModule

    DumpMT                             GCHandles

    DumpClass                          GCHandleLeaks

    DumpMD                             VMMap

    Token2EE                           VMStat

    EEVersion                          ProcInfo

    DumpModule                         StopOnException (soe)

    ThreadPool                         MinidumpMode

    DumpAssembly                      

    DumpMethodSig                      Other

    DumpRuntimeTypes                   -----------------------------

    DumpSig                            FAQ

    RCWCleanupList

    DumpIL

    0:003> !dumpdomain

    --------------------------------------

    System Domain: 7a38bb38

    LowFrequencyHeap: 7a38bb5c

    HighFrequencyHeap: 7a38bbb8

    StubHeap: 7a38bc14

    Stage: OPEN

    Name: None

    --------------------------------------

    Shared Domain: 7a38c110

    LowFrequencyHeap: 7a38c134

    HighFrequencyHeap: 7a38c190

    StubHeap: 7a38c1ec

    Stage: OPEN

    Name: None

    Assembly: 00161548

    --------------------------------------

    Domain 1: 00154808

    LowFrequencyHeap: 0015482c

    HighFrequencyHeap: 00154888

    StubHeap: 001548e4

    Stage: OPEN

    SecurityDescriptor: 0014a5a8

    Name: dotnetForWindbg.exe

    Assembly: 00161548 [C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll]

    ClassLoader: 0014ea40

    SecurityDescriptor: 0014d2e0

     Module Name

    790c2000 C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll

    Assembly: 001695e0 [D:\debug\dotnetForWindbg.exe]

    ClassLoader: 00169668

    SecurityDescriptor: 00168ef0

     Module Name

    00a52c14 D:\debug\dotnetForWindbg.exe

    0:003> !threads

    ThreadCount: 2

    UnstartedThread: 0

    BackgroundThread: 1

    PendingThread: 0

    DeadThread: 0

    Hosted Runtime: no

                                          PreEmptive   GC Alloc           Lock

           ID OSID ThreadOBJ    State     GC       Context       Domain   Count APT Exception

       0    1 990 0014a600   200a020 Enabled 013a39a8:013a3fe8 00154808     0 MTA

       2    2 e18 0015d740      b220 Enabled 00000000:00000000 00154808     0 MTA (Finalizer)

    0:003> ~*e!clrstack

    OS Thread Id: 0x990 (0)

    ESP       EIP    

    0012f424 7c82ed54 [HelperMethodFrame: 0012f424] System.Threading.Thread.SleepInternal(Int32)

    0012f478 793d80f5 System.Threading.Thread.Sleep(Int32)

    0012f47c 00d700ba dotnetForWindbg.Program.Main(System.String[])

    0012f69c 79e88f63 [GCFrame: 0012f69c]

    OS Thread Id: 0xe38 (1)

    Unable to walk the managed stack. The current thread is likely not a

    managed thread. You can run !threads to get a list of managed threads in

    the process

    OS Thread Id: 0xe18 (2)

    Failed to start stack walk: 80004005

    OS Thread Id: 0x5e8 (3)

    Unable to walk the managed stack. The current thread is likely not a

    managed thread. You can run !threads to get a list of managed threads in

    the process

    0:000> !threadpool

    CPU utilization 0%

    Worker Thread: Total: 0 Running: 0 Idle: 0 MaxLimit: 0 MinLimit: 0

    Work Request in Queue: 0

    --------------------------------------

    Number of Timers: 0

    --------------------------------------

    Completion Port Thread:Total: 0 Free: 0 MaxFree: 0 CurrentLimit: 0 MaxLimit: 1000 MinLimit: 0

    0:000> !GCHandles

    GC Handle Statistics:

    Strong Handles: 14

    Pinned Handles: 4

    Async Pinned Handles: 0

    Ref Count Handles: 0

    Weak Long Handles: 0

    Weak Short Handles: 1

    Other Handles: 0

    Statistics:

          MT    Count    TotalSize Class Name

    790f9c18        1           12 System.Object

    790fc79c        1           24 System.Reflection.Assembly

    790fb668        1           28 System.SharedStatics

    790fac70        1           72 System.ExecutionEngineException

    790fabcc        1           72 System.StackOverflowException

    790fab28        1           72 System.OutOfMemoryException

    790fb8c8        1          100 System.AppDomain

    790fb238        2          104 System.Threading.Thread

    790fd824        4          144 System.Security.PermissionSet

    790fad14       2          144 System.Threading.ThreadAbortException

    79124228        4         8736 System.Object[]

    Total 19 objects

    0:000> !EEHeap

    Loader Heap:

    --------------------------------------

    System Domain: 7a38bb38

    LowFrequencyHeap: Size: 0x0(0)bytes.

    HighFrequencyHeap: 00a42000(8000:1000) Size: 0x1000(4096)bytes.

    StubHeap: 00a4a000(2000:1000) Size: 0x1000(4096)bytes.

    Virtual Call Stub Heap:

     IndcellHeap: Size: 0x0(0)bytes.

     LookupHeap: Size: 0x0(0)bytes.

     ResolveHeap: Size: 0x0(0)bytes.

     DispatchHeap: Size: 0x0(0)bytes.

     CacheEntryHeap: Size: 0x0(0)bytes.

    Total size: 0x2000(8192)bytes

    --------------------------------------

    Shared Domain: 7a38c110

    LowFrequencyHeap: 00a70000(2000:1000) Size: 0x1000(4096)bytes.

    HighFrequencyHeap: Size: 0x0(0)bytes.

    StubHeap: 00a7a000(2000:1000) Size: 0x1000(4096)bytes.

    Virtual Call Stub Heap:

     IndcellHeap: Size: 0x0(0)bytes.

     LookupHeap: Size: 0x0(0)bytes.

     ResolveHeap: 00a8b000(5000:1000) Size: 0x1000(4096)bytes.

     DispatchHeap: 00a87000(4000:1000) Size: 0x1000(4096)bytes.

     CacheEntryHeap: Size: 0x0(0)bytes.

    Total size: 0x4000(16384)bytes

    --------------------------------------

    Domain 1: 154808

    LowFrequencyHeap: 00a50000(2000:2000) Size: 0x2000(8192)bytes.

    HighFrequencyHeap: 00a52000(8000:2000) Size: 0x2000(8192)bytes.

    StubHeap: Size: 0x0(0)bytes.

    Virtual Call Stub Heap:

     IndcellHeap: Size: 0x0(0)bytes.

     LookupHeap: Size: 0x0(0)bytes.

     ResolveHeap: Size: 0x0(0)bytes.

     DispatchHeap: Size: 0x0(0)bytes.

     CacheEntryHeap: Size: 0x0(0)bytes.

    Total size: 0x4000(16384)bytes

    --------------------------------------

    Jit code heap:

    LoaderCodeHeap: 00d70000(10000:1000) Size: 0x1000(4096)bytes.

    Total size: 0x1000(4096)bytes

    --------------------------------------

    Module Thunk heaps:

    Module 790c2000: Size: 0x0(0)bytes.

    Module 00a52c14: Size: 0x0(0)bytes.

    Total size: 0x0(0)bytes

    --------------------------------------

    Module Lookup Table heaps:

    Module 790c2000: Size: 0x0(0)bytes.

    Module 00a52c14: Size: 0x0(0)bytes.

    Total size: 0x0(0)bytes

    --------------------------------------

    Total LoaderHeap size: 0xb000(45056)bytes

    =======================================

    Number of GC Heaps: 1

    generation 0 starts at 0x013a1018

    generation 1 starts at 0x013a100c

    generation 2 starts at 0x013a1000

    ephemeral segment allocation context: none

     segment    begin allocated     size

    0015f300 790d6358 790f5800 0x0001f4a8(128168)

    013a0000 013a1000 013a3ff4 0x00002ff4(12276)

    Large object heap starts at 0x023a1000

     segment    begin allocated     size

    023a0000 023a1000 023a3250 0x00002250(8784)

    Total Size   0x246ec(149228)

    ------------------------------

    GC Heap Size   0x246ec(149228)

     SOSEX - Copyright 2007-2011 by Steve Johnson - http://www.stevestechspot.com/

    To report bugs or offer feedback about SOSEX, please email sjjohnson@pobox.com
    Quick Ref:
    --------------------------------------------------
    bpsc      (Deprecated.  Use !mbp instead)
    dlk       (no parameters)                                Displays deadlocks between SyncBlocks and/or ReaderWriterLocks
    dumpgen   <GenNum> [-free] [-stat] [-type <TYPE_NAME>]   Dumps the contents of the specified generation
                       [-nostrings]
    finq      [GenNum] [-stat]                               Displays objects in the finalization queue
    frq       [-stat]                                        Displays objects in the Freachable queue
    gcgen     <ObjectAddr>                                   Displays the GC generation of the specified object
    gch       [HandleType]...                                Lists all GCHandles, optionally filtered by specified handle types
    help      [CommandName]                                  Display this screen or details about the specified command
    mbc       <SOSEX breakpoint ID | *>                      Clears the specified or all managed breakpoints
    mbd       <SOSEX breakpoint ID | *>                      Disables the specified or all managed breakpoints
    mbe       <SOSEX breakpoint ID | *>                      Enables the specified or all managed breakpoints
    mbl       [SOSEX breakpoint ID]                          Prints the specified or all managed breakpoints
    mbm       <Type/MethodFilter> [ILOffset] [Options]       Sets a managed breakpoint on methods matching the specified filter
    mbp       <SourceFile> <nLineNum> [ColNum] [Options]     Sets a managed breakpoint at the specified source code location
    mdso      [Options]                                      Dumps object references on the stack and in CPU registers in the current context
    mdt       [TypeName | VarName | MT] [ADDR] [Options]     Displays the fields of an object or type, optionally recursively
    mdv       [nFrameNum]                                    Displays arguments and locals for a managed frame
    mfrag     [-stat]                                        Reports free blocks in Gen2, the type of object following the free block, and fragmentation statistics
    mframe    [nFrameNum]                                    Displays or sets the current managed frame for the !mdt and !mdv commands
    mgu       // TODO: Document
    mk        [FrameCount] [-l] [-p] [-a]                    Prints a stack trace of managed and unmanaged frames
    mln       [expression]                                   Displays the type of managed data located at the specified address or the current instruction pointer
    mlocks    (no parameters)                                Lists all managed lock objects and CriticalSections and their owning threads
    mt        (no parameters)                                Steps into the managed method at the current position
    mu        [address] [-s] [-il] [-n]                      Displays a disassembly around the current instruction with interleaved source, IL and asm code
    muf       [MD Address | Code Address] [-s] [-il] [-n]    Displays a disassembly with interleaved source, IL and asm code
    mwaits    (no parameters)                                Lists all waiting threads and, if known, the locks they are waiting on
    mx        <Filter String>                                Displays managed type/field/method names matching the specified filter string
    refs      <ObjectAddr>                                   Displays all references from and to the specified object
    rwlock    [ObjectAddr]                                   Displays all RWLocks or, if provided a RWLock address, details of the specified lock
    sosexhelp [CommandName]                                  Display this screen or details about the specified command
    strings   [Options]                                      Lists all strings on managed heaps that match the specified criteria
    ListGcHandles - See gch

    X64 

    https://files.cnblogs.com/ahuo/sosex_64.zip 

    X86 

    https://files.cnblogs.com/ahuo/sosex_32.zip

  • 相关阅读:
    缓冲区溢出实验 6 exit(0)
    缓冲区溢出实验 1 strcpy
    缓冲区溢出实验 5 Snprintf
    [LeetCode] 130. Surrounded Regions 包围区域
    [LeetCode] 547. Friend Circles 朋友圈
    [LeetCode] 200. Number of Islands 岛屿的数量
    [LeetCode 695] Max Area of Island 岛的最大面积
    [LeetCode] 3. Longest Substring Without Repeating Characters 最长无重复字符的子串
    [LeetCode] 5. Longest Palindromic Substring 最长回文子串
    [LeetCode] 53. Maximum Subarray 最大子数组 --动态规划+分治
  • 原文地址:https://www.cnblogs.com/ahuo/p/2195326.html
Copyright © 2011-2022 走看看