Windbg.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文档。上传文档
查看更多
Windbg

启用即时调试 大多数公共的应用程序错误称为异常。包括访问违例、除零、数字溢出和一些其他种类的错误。 应用程序也可能产生断点中断。当Windows不能继续运行程序(例如必须的模块不能加载)或者当遇到断点的时候会产生。断点可以由调试器插入代码中,也可以通过对类似DbgBreakPoint这样的函数调用产生。在汇编语言中,断点一般由int 3指令产生。 Windows可以通过各种方式处理用户模式错误。下面按优先顺序列出了错误处理方式: 如果出错进程已经附加上了用户模式调试器,所有错误都会使得目标中断到调试器。 在用户模式调试器已经附加上去的时候,不会再使用其他错误处理方法,即使使用了 HYPERLINK /windbghelp/hh/debugger/r16_cmds_c_3254135f-8902-45ee-a2dc-a52049ea903c.xml.htm gn?(Go With Exception Not Handled)命令。 如果没有附加调试器并且执行的代码有自己的异常处理程序(例如try - except),异常处理程序会被尝试用于处理错误。 如果没有用户模式调试器附加,并且Windows打开了内核调试连接,并且错误是一个断点中断,Windows会尝试联络内核调试器。 内核调试连接必须在Windows引导过程中就打开。如果运行Windows Server 2003或之后的Windows,并且希望避免从用户模式中断到内核调试器,可以使用KDbgCtrl 实用工具和-du参数。关于如何配置内核调试连接及如何使用KDbgCtrl,查看 HYPERLINK /windbghelp/hh/debugger/bootini_pageone_dbg_06095f76-d8a9-4397-880e-d9d461b84904.xml.htm 配置目标机的软件。 如果Windows尝试联系内核调试器,但是在连接的另一端没有调试器运行,Windows会停止并等待内核调试器激活。 在内核调试器中,可以使用 HYPERLINK /windbghelp/hh/debugger/r16_cmds_c_bb7ab8a9-efe6-4feb-b234-e94xml.htm gh?(Go With Exception Handled)来忽略错误并继续运行目标。使用了 HYPERLINK /windbghelp/hh/debugger/r16_cmds_c_3254135f-8902-45ee-a2dc-a52049ea903c.xml.htm gn?(Go With Exception Not Handled)命令来跳过内核调试器并进入第4步。 如果上面1、2、3步骤的条件都不满足,Windows将激活一个调试工具。任何程序都可以将自己设置为在这种情况下使用的工具。被选定的程序称为即时调试器。也称为just-in-time 调试器或者JIT调试器。 如果即时调试器是标准的用户模式调试器(如CDB、WinDbg或者Microsoft Visual Studio),该调试器会被启动起来并且中断应用程序。 如果即时调试器是用于创建dump文件的工具(如 HYPERLINK /windbghelp/hh/debugger/drwatson_92d60a12-6577-4cd5-a02f-a1ea8204719a.xml.htm Dr.?Watson),将会创建一个内存转储(dump)文件,并且应用程序将被终止。 注意 如果Dr. Watson 在Windows XP或之后版本Windows中被激活,会出现一个消息框。这个窗口提供选项来发送错误报告给Microsoft。如果选择不发送(Dont Send),一个dump文件会被创建并保存到磁盘中。如果选择发送错误报告,dump文件会被创建并保存,同时将通过网络发送给Microsoft。 如果没有重新配置过即时调试设置,默认的即时调试器是Dr. Watson 。这个设置可以通过编程或者注册表修改,并且立即生效。 要将即时调试器修改为WinDbg,运行windbg -I 。(I必须大写。)使用该命令后会显示成功或者失败的消息。当WinDbg是即时调试器的时候,任何应用程序崩溃时它都会激活。 要将即时调试器修改为CDB,运行cdb -iae 或 cdb -iaec KeyString。使用-iaec参数时, KeyString 指定要添加到用于启动即时调试器的命令行之后的字符串。如果KeyString包含空格,必须用引号括起来。该命令如果成功不会有消息显示,但是失败会有提示。如果CDB是即时调试器,当应用程序崩溃时,它会自动被激活。 要将即时调试器修改为NTSD,运行ntsd –iae或

文档评论(0)

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

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

1亿VIP精品文档

相关文档