EDN Admin
Well-known member
In this episode of Defrag Tools , Andrew Richards and Larry Larsen continue looking at the Debugging Tools for Windows (in particular WinDbg ). WinDbg is a debugger that supports user mode debugging of a process, or kernel mode debugging of a computer. This installment shows how you can view the user mode call stack and stack variables in a native, managed (.NET) or Silverlight process. We use these commands: dv dt !sos.dumpstack !sos.dumpstackobjects / !sos.dso !sos.dumpobj / !sos.do !sos.printexception / !sos.pe .frame .f+ .f- .load .unload .loadby .chain lm / lmm / lmvm .extmatch .prefer_dml 1 .lines .ecxr .cls Make sure you watch http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-Building-your-USB-thumbdrive Defrag Tools Episode #1 for instructions on how to get the Debugging Tools for Windows and how to set the required environment variables for symbols and source code resolution. Resources:
http://www.microsoft.com/en-us/download/details.aspx?id=8279 Microsoft Windows SDK for Windows 7 and .NET Framework 4
http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx Sysinternals ProcDump
http://www.silverlight.net/downloads Silverlight Developer Runtime <span><span> Timeline:
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=01m05s [01:05] - Native vs. Managed variables
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=02m35s [02:35] - Display Variables (dv) and Display Type (dt)
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=03m38s [03:38] - Debugger Extensions (.chain, .load, .unload)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=05m43s [05:43] - Extension Match (.extmatch)
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=07m08s [07:08] - ProcDump v5.1 captures a .NET 2 and .NET 4 exception
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=08m46s [08:46] - .NET engines versus .NET releases
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=10m34s [10:34] - Loading "Son of Strike" for .NET 2 engine applications (.loadby sos.dll mscorwks)
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=13m44s [13:44] - Loading "Son of Strike" for .NET 4 engine applications (.loadby sos.dll clr)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=15m24s [15:24] - Dump Call Stack (!sos.dumpstack)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=16m32s [16:32] - Dump Stack Objects (!sos.dumpstackobjects / !sos.dso)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=17m30s [17:30] - Dump Object (!sos.dumpobject / !sos.do)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=17m51s [17:51] - Enable DML (.prefer_dml 1)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=20m14s [20:14] - Toggling Line display (.lines)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=20m52s [20:52] - Current Frame Context (.frame, .f+, .f-); Note, registers do not change
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=22m58s [22:58] - ProcDump v5.1 misses Silverlight exceptions
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=24m50s [24:50] - Silverlight Developer Runtime (dbgshim.dll & sos.dll)
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=26m10s [26:10] - ProcDump v5.1 captures a Silverlight exception
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=28m10s [28:10] - Loading "Son of Strike" for Silverlight applications (.loadby sos.dll coreclr)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=30m47s [30:47] - Missed: Exceptions can also be displayed with !sos.printexception / !sos.pe
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=31m29s [31:29] - Episode review and next week... Kernel debugging <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Feeds/RSS&WT.dl=0&WT.entryid=Entry:RSSView:91aa3622a9a54585ba84a0e101206ed8
View the full article
http://www.microsoft.com/en-us/download/details.aspx?id=8279 Microsoft Windows SDK for Windows 7 and .NET Framework 4
http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx Sysinternals ProcDump
http://www.silverlight.net/downloads Silverlight Developer Runtime <span><span> Timeline:
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=01m05s [01:05] - Native vs. Managed variables
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=02m35s [02:35] - Display Variables (dv) and Display Type (dt)
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=03m38s [03:38] - Debugger Extensions (.chain, .load, .unload)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=05m43s [05:43] - Extension Match (.extmatch)
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=07m08s [07:08] - ProcDump v5.1 captures a .NET 2 and .NET 4 exception
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=08m46s [08:46] - .NET engines versus .NET releases
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=10m34s [10:34] - Loading "Son of Strike" for .NET 2 engine applications (.loadby sos.dll mscorwks)
<span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=13m44s [13:44] - Loading "Son of Strike" for .NET 4 engine applications (.loadby sos.dll clr)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=15m24s [15:24] - Dump Call Stack (!sos.dumpstack)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=16m32s [16:32] - Dump Stack Objects (!sos.dumpstackobjects / !sos.dso)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=17m30s [17:30] - Dump Object (!sos.dumpobject / !sos.do)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=17m51s [17:51] - Enable DML (.prefer_dml 1)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=20m14s [20:14] - Toggling Line display (.lines)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=20m52s [20:52] - Current Frame Context (.frame, .f+, .f-); Note, registers do not change
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=22m58s [22:58] - ProcDump v5.1 misses Silverlight exceptions
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=24m50s [24:50] - Silverlight Developer Runtime (dbgshim.dll & sos.dll)
<span><span><span><span> http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=26m10s [26:10] - ProcDump v5.1 captures a Silverlight exception
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=28m10s [28:10] - Loading "Son of Strike" for Silverlight applications (.loadby sos.dll coreclr)
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=30m47s [30:47] - Missed: Exceptions can also be displayed with !sos.printexception / !sos.pe
http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-14-WinDbg-SOS#time=31m29s [31:29] - Episode review and next week... Kernel debugging <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Feeds/RSS&WT.dl=0&WT.entryid=Entry:RSSView:91aa3622a9a54585ba84a0e101206ed8
View the full article