dotNET2.0应用程序调试.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
dotNET2.0应用程序调试

2.6 建立符号库 2.6? 建立符号库 对那些在Windows上开发时间超过5分钟的人来说,他们都知道,得到正确的调试符号是提高调试速度的诀窍。尽管托管代码在PDB文件中只有代码和行号信息以及局部变量,但如果你的问题与本机代码有关,那你就太不走运了。本机代码将更多的信息放入PDB,如果没有调试符号,就会因为没有PDB文件中的帧指针省略(frame pointer omission 如果你认为让开发团队以及公司的每个人使用正确的符号有困难,那就想想微软的操作系统小组的处境有多糟糕吧。他们每天都要生成不同的版本,而且全世界有数以千计的不同版本的操作系统在任何时候运行。相比之下,你的符号问题就似乎微不足道了。即使你认为自己在一个大型的项目中, 除了获得调试符号外,微软还必须面对维护管理二进制文件的难题。微软为更好地解决调试崩溃的问题引入了一种叫 微软的开发人员意识到他们不得不采取些行动让自己轻松点。由于缺少与任何机器上无数的修补程序相匹配的操作系统符号和二进制,我们这些微软之外的人也一直在抱怨调试的经历真是苦海无边。符号服务器的概念很简单:在一个大家都知道的地址保存所有公共版本符号和二进制可执行程序,并使调试器更智能,这样就能对加载到进程的每个模块加载正确的符号和二进制可执行程序——无论模块是从代码中加载还是从操作系统中加载——无需 与前几个版本相比,Visual Studio 2005对访问符号服务器进行调试的方法作了很大的改进。不巧的是,文档仍旧没有讨论最重要的观点,即如何将符号和二进制文件引入符号服务器。由于这是使用符号服务器的最大好处,接下来就会讨论如何安装一个有效的符号服务器。 让公司里每个执行你的项目的人都能访问服务器的步骤非常简单。你可能需要将这个服务器命名为\\SYMBOLS 就可 下一步就是从/whdc/devtools/debugging/default.mspx 对于那些访问互联网的时候都需要使用代理服务器登录的人来说,我颇为同情。幸运的是,Windows小组知道我们的痛苦。Debugging Tools for Windows 你还需要寻找Debugging Tools for Windows/WEBLOGS/阅读Wintellect Blog,因为当这个小组发布新的Debugging Tools for Windows的时候我总是会提醒大家。 安装了Debugging Tools for Windows以后,就应该安装两个调试器进行使用。对WinDBG,最好在系统设置中使用两个环境变量来告诉调试器符号服务器驻留在哪里。为了在Windows XP和Windows Server 2003中访问这个区域,右击“我的电脑”,从快捷菜单中选择“选项”。点击“高级”标签,在“系统选项”对话框的底部,点击“环境变量”。 图2-5显示了环境变量对话框。你需要创建两个新的环境变量_NT_SYMBOL_ PATH和_NT_EXECUTABLE_IMAGE_PATH,我将马上向你显示这些值。你从名字中就能猜到,第一个环境变量就是WinDBG寻找PDB文件的地方,而WinDBG使用第二个环境变量寻找微型转储文件的二进制。_NT_SYMBOL_PATH的值如下(注意,下面的代码都需要在一行中输入,你应该把访问Visual Studio安装目录的路径放在Visual_Studio_ installation_directory): SRV*c:\symbols*\\Symbols\OSSymbols*\\Symbols\ProductSymbols* /download/symbols; VS install directory\SDK\v2.0\symbols; VS install directory\SDK \v2.0 64bit\symbols; _NT_EXECUTABLE_IMAGE_PATH的值很相似: SRV*c:\symbols*\\Symbols\OSSymbols*\\Symbols\ProductSymbols 图2-5 为了详细解释符号路径,最好了解调试器如何查找符号。关键的值都在PDB文件和GUID中。当你编译源代码到Portable Executable(PE)文件并生成PDB文件时,编译器或连接器就会放入一个调试片断(debug section)。在这个片断中,它列举了访问PDB文件及GUID的完整路径 当调试器加载PDB时,第一个就会在二进制的调试片断中寻找访问PDB文件的完整路径。如果有匹配的PDB文件,调试器就会打开那个PDB文件,你就能用符号 如果调试器不能从嵌入二进制文件的路径中找到匹配的PDB文件,它就会在加载二进制的目录中寻找,如果匹配的符号存在,它们就会被加载。现在

文档评论(0)

dlive45 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档