SOSEX is one of the few existing Windows Debugger extensions for managed code (.NET). It adds a few useful commands to the basic SOS, but its command reference is not easy to find online.
The list of its commands is available via
!sosex.help command. You might find the resulting list useful when considering this extension for your debugging scenario:
0:000> !sosex.help SOSEX - Copyright 2007-2015 by Steve Johnson - http://www.stevestechspot.com/ To report bugs or offer feedback about SOSEX, please email email@example.com Quick Ref: -------------------------------------------------- bhi [filename] BuildHeapIndex - Builds an index file for heap objects. bpsc (Deprecated. Use !mbp instead) chi ClearHeapIndex - Frees all resources used by the heap index and removes it from memory. dlk [-d] Displays deadlocks between SyncBlocks and/or ReaderWriterLocks dumpfd <FieldAddr> Dumps the properties of a FieldDef structure dumpgen <GenNum> [-free] [-stat] [-type <TYPE_NAME>] Dumps the contents of the specified generation [-nostrings] [-live] [-dead] [-short] 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]... [-stat] Lists all GCHandles, optionally filtered by specified handle types help [CommandName] Display this screen or details about the specified command lhi [filename] LoadHeapIndex - load the heap index into memory. 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] [-mt:<MT>] Reports free blocks, 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 [-d] Lists all managed lock objects and CriticalSections and their owning threads mroot <ObjectAddr> [-all] Displays GC roots for the specified object 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 [-d | LockAddr] 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 rcw [Object or SyncBlock Addr] Displays Runtime Callable Wrapper (RCW) COM interop data. refs <ObjectAddr> [-target|-source] Displays all references from and to the specified object rwlock [ObjectAddr | -d] 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 [ModuleAddress] [Options] Search the managed heap or a module for strings matching the specified criteria ListGcHandles - See gch Use !help <command> or !sosexhelp <command> for more details about each command. You can also use the /? (or -?) option on any command to get help for that command.