人生是一场不能存盘的RPG,我只能尽量多搞几个Screenshot

May 26, 2006

使用SOS

Filed under: WinDbg&SOS

//—-SOS.dll 的位置
%windir%\Microsoft.NET\Framework\<version>\

Documnet
C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\Samples\sos
.NET 2.0中这个目录不见了.

//—-让WinDbg加载SOS
当打开一个.net 可执行程序windbg6.5会自动加载SOS,如果需要手动加载,有如下方法

方法1:配置系统环境变量,让搜索路径指向系统.NET Framework的安装目录,既sos.dll所在目录
set PATH=%PATH%;C:\WINDOWS\Microsoft.NET\Framework\<Version>
然后使用.load SOS 加载

方法2. 加载某个特定的sos
.load <full path to sos.dll>

方法3.
.extpath command sets or displays the extension DLL search path.

方法4.
.loadby sos mscorwks
debugger 会加载模块mscorwks所在路径下的sos

方法5.
直接使用形如!DLLName.ExtensionCommand 的命令,如果扩展dll没有被加载,debugger会加载之.

在windbg6.5的安装目录下也有一个sos.dll
C:\Program Files\Debugging Tools for Windows\clr10
加载和使用方法如下:
.load clr10\sos
!clr10\sos.help

//—-相关命令

.load sos
加载SOS

.chain
list extensions dlls,以确认SOS是否正确加载

.setdll sos.dll 把SOS设置为default extension.

lm
查看有哪些模块被载入内存

//—–实验
用Windbg打开一个.net 可执行程序(ctrl+E), WinDbg会自动break到程序入口(如果attach到一个程序上,则
立即break),此时,mscorwks尚未被加载,如果在此时加载了SOS,SOS中的命令还无法使用.F5让程序继续运行,
这次WinDbg会自动break到,此时使用lm命令可以看到被加载的module,其中包含了mscorwks.dll,此时SOS中的命令
才可使用

参考
SOS: It’s Not Just an ABBA Song Anymore(John Robbins)
http://msdn.microsoft.com/msdnmag/issues/03/06/Bugslayer/

Mini Dump Snapshots and the New SOS(John Robbins)
http://msdn.microsoft.com/msdnmag/issues/05/03/Bugslayer/default.aspx

SOS Debugging of the CLR, Part 1
http://blogs.msdn.com/jasonz/archive/2003/10/21/53581.aspx

用WinDbg探索CLR世界
http://flier.cnblogs.com/archive/2004/07/08/22313.html

深入探索.NET框架内部了解CLR如何创建运行时对象
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/JITCompiler.mspx?mfr=true

如何:使用 SOS
http://msdn2.microsoft.com/zh-cn/library/yy6d2sxs.aspx

SOS Debugging Extension (SOS.dll)
http://msdn2.microsoft.com/en-us/library/ms404370.aspx

Comments »

The URI to TrackBack this entry is: http://recordsome.blogsome.com/2006/05/26/p63/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.






















Get free blog up and running in minutes with Blogsome
Theme designed by Hadley Wickham