Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You can use WinDbg which can be run portable (xcopy from an existing installation), and with the SoS add-on it can help a lot in debugging C# applications - even in post mortem. It might be difficult to grasp at first, but it's worth learning - it will come very useful in several situations.</p> <p>SoS reference here : <a href="http://msdn.microsoft.com/en-us/library/bb190764.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb190764.aspx</a></p> <p>I have this quick cheat-sheet with what I found most useful (found somewhere on the internet and then enriched with time) :</p> <pre><code>Starting, Attaching, Executing and Exiting Start -&gt; All Programs -&gt; Debugging Tools for Windows -&gt; WinDbg F6 attach to process Ctrl-Break interrupt debugee .detach detach from a process g continue debugee execution q exit WinDbg Getting Help ? help on commands that affect the debugee .help help on commands that affect the debugger .hh command view the on line help file !help help on the extension dll at the top of the chain (e. g., SOS) Issuing Commands up arrow, down arrow, enter scroll through command history Right mouse button paste into command window Examining the Unmanaged Environment lmf list loaded modules with full path lmt list loaded modules with last modified timestamp ~ list unmanaged threads ~thread s select a thread for thread specific commands !token -n view thread permissions k view the unmanaged call stack !runaway view thread CPU consumption bp set a breakpoint .dump path dump small memory image .dump /ma path dump complete memory image Working with Extension DLLs (e. g., SOS) .chain list extensions dlls .load clr10\sos load SOS for debugging framework 1.0 / 1.1 (use .unload to unload) .loadby sos mscorwks load SOS for debugging framework 2.0 .loadby sos clr load SOS for debugging framework 4.0 SOS Commands !threads view managed threads !clrstack view the managed call stack !dumpstack view combined unmanaged &amp; managed call stack !clrstack -p view function call arguments !clrstack –l view stack (local) variables !name2ee module class view addresses associated with a class or method !dumpmt –md address view the method table &amp; methods for a class !dumpmd address view detailed information about a method !do address view information about an object !dumpheap –stat view memory consumption by type !dumpheap –min size view memory consumption by object when at least size !dumpheap –type type view memory consumption for all objects of type type !gcroot address view which object are holding a reference to address !syncblk view information about managed locks SOS 2.0 Commands !bpmd module method set breakpoint !DumpArray address view contents of an array !PrintException view information about most recent exception </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload