符号文件设置和获取

符号服务器和.NET Framework与Windows内核代码调试

只需要在VS中设置符号服务器,就能在调试应用程序时进入.NET Framework和Windows内核代码。下面我们以VS2005调试.NET代码为例看一下怎么设置。

1.在 VS2005工具/选项/符号 (Tools/Options/Symbols),添加如下符号文件位置(符号服务器):
http://msdl.microsoft.com/download/symbols
并建议设置混存到本地符号服务器的共享目录, 如 //symserver/Symbols
 
2. 如要进入.NET Framework代码,在VS2005工具/选项/常规(Tools/Options/General),确认不选择启用'仅我的代码'(仅限托管) - "Enable Just My Code(Managed Only)",但是这样会导致调试时加载速度较慢。第一次加载符号文件前会弹出一个用户许可协议框。
在调用framework代码时按F11即可进入framework代码,但是只能显示MSIL反汇编代码,另外可以通过"调用堆栈(Call Stack)"窗口看到当前所处的framework函数
 
3. 在Call Stack窗口,右键选择 Symbol Load Information,可以查看当前加载的程序集所对应的调试符号文件的加载情况,如果最后一条记录纪录是 Can't find or open the PDB file,说明最终无法找到此程序集对应的dll,可能是网络不通或者微软符号服务器暂时不可用或者前面的设置错误。
 
4.如果要进入调用的第三方库或者自己的dll,也只需要在第一步的设置中添加调用的dll对应的pdb所在的目录即可。
 
5.为了在生产环境能够进行运行时调试,C#和Web Application Project的Release项目需要确保属性/生成/高级/输出调试信息里,选择pdb-only。而Web Site的项目,编译时一直是full模式,无需设置。
 
6.对于Native代码的调试如要进入操作系统代码也可以一样设置,另外也可以到http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx下载安装完整的操作系统符号包。

7.对于Native程序的发布,在Release版本的编译属性也要设置输出pdb并保存每次发布时生成的pdb文件,这样在用户机器上崩溃时,可以通过时间戳匹配pdb和dump文件并迅速定位有问题的代码。

8.对于windbg等工具,可以使用命令.sympath+ srv*D:/SymSrv*http://msdl.microsoft.com/download/symbols指定符号服务器和缓存路径
另外也可以通过cmd里set _NT_SYMBOL_PATH=srv*D:/SymSrv*http://msdl.microsoft.com/download/symbols来设定

WinDbg的下载地址,安装之后会包括除了Visual Studio之外所有前面提到的Debugger工具和一些其他辅助程序

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

 

转自:http://idoall.org/blogs/ian/archive/2007/10/30/net-framework-windows.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值