我是靠谱客的博主 单身发带,最近开发中收集的这篇文章主要介绍Windbg调试异常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用windbg分析包含异常信息的dump文件时,往往当前栈帧已不正确,可通过如下步骤找回:

1、!teb,找到StackBase和StackLimit

2、通过.cxr命令将异常上下文恢复到相关寄存器

如何找到异常上下文的地址呢?

方法一:dds/dps/dqs [StackLimit]~[StackBase]找到RtlDispatchException函数的第二个参数,即为异常上下文地址

方法二:s -d [StackLimit] L1000 1003f即可搜到异常上下文所在位置,该地址即异常上下文地址,1003f为异常上下文的ContextFlags字段。


3、在.cxr后各寄存器的值已经是出错时的值了,通过kb即可定位错误。


注:VistaWindows 2008中,系统改良了Error Reporting功能。程序崩溃后,系统会在Error Reporting的时候从内核直接挂起出错的进程。这个时候如果用调试器检查,会看到出错进程就停在发生问题的指令上,不再需要在调试器中手动恢复exception context。

最后

以上就是单身发带为你收集整理的Windbg调试异常的全部内容,希望文章能够帮你解决Windbg调试异常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部