Windbg调试异常
2014-04-08 20:36
441 查看
用windbg分析包含异常信息的dump文件时,往往当前栈帧已不正确,可通过如下步骤找回:
1、!teb,找到StackBase和StackLimit
2、通过.cxr命令将异常上下文恢复到相关寄存器
如何找到异常上下文的地址呢?
方法一:dds/dps/dqs [StackLimit]~[StackBase]找到RtlDispatchException函数的第二个参数,即为异常上下文地址
方法二:s -d [StackLimit] L1000 1003f即可搜到异常上下文所在位置,该地址即异常上下文地址,1003f为异常上下文的ContextFlags字段。
3、在.cxr后各寄存器的值已经是出错时的值了,通过kb即可定位错误。
注:在Vista和Windows 2008中,系统改良了Error
Reporting功能。程序崩溃后,系统会在Error Reporting的时候从内核直接挂起出错的进程。这个时候如果用调试器检查,会看到出错进程就停在发生问题的指令上,不再需要在调试器中手动恢复exception context。
1、!teb,找到StackBase和StackLimit
2、通过.cxr命令将异常上下文恢复到相关寄存器
如何找到异常上下文的地址呢?
方法一:dds/dps/dqs [StackLimit]~[StackBase]找到RtlDispatchException函数的第二个参数,即为异常上下文地址
方法二:s -d [StackLimit] L1000 1003f即可搜到异常上下文所在位置,该地址即异常上下文地址,1003f为异常上下文的ContextFlags字段。
3、在.cxr后各寄存器的值已经是出错时的值了,通过kb即可定位错误。
注:在Vista和Windows 2008中,系统改良了Error
Reporting功能。程序崩溃后,系统会在Error Reporting的时候从内核直接挂起出错的进程。这个时候如果用调试器检查,会看到出错进程就停在发生问题的指令上,不再需要在调试器中手动恢复exception context。
相关文章推荐
- javascript有趣的对象数组混合取值
- AJAX笔试面试题汇总
- AJAX笔试面试题汇总
- oracle表管理
- ajax面试题
- postgresql-9.1.9编译及简单CGI访问数据库
- .net面试那些事
- ajax面试题
- ajax面试题
- (基于Java)算法之快速排序
- MFC中各种数据类型的转换
- 数塔 ( 动态规划)
- strlen
- POJ 1094
- 在集群中java 通过调用API操作HBase 0.98
- POJ 3189 Steady Cow Assignment(二分+多重匹配)
- 指针和引用的区别?
- hdu 找新朋友
- UNION ALL vs UNION
- 黑马程序员-我的第十七篇学习日记:Foundation中的结构体和字符串