.exr (Display Exception Record)

.exr命令显示异常记录的内容。
.exr Address
.exr -1

参数:

  • Address
    指定异常记录的地址。如果指定-1作为地址,调试器将显示最新的异常。
环境:

模式

用户模式下,内核模式

目标

实时、 崩溃转储

平台

全部

.exr命令显示与调试器在目标计算机上遇到的异常相关的信息。显示的信息包括异常地址、异常代码、异常标志和异常参数的变量列表。 通常可以通过使用!pcr扩展命令获取地址。
下面的例子是在dmp文件里的演示
这个是一个具体异常记录地址
0:000> .exr 010fd1c8
ExceptionAddress: 694c4b4c (nvoglv32!DrvPresentBuffers+0x000c19fc)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 4592e000
Attempt to read from address 4592e000

这个地址用-1的结果

0:000> .exr -1
*** ERROR: Symbol file could not be found. Defaulted to export symbols for nvoglv32.dll -
ExceptionAddress: 694c4b4c (nvoglv32!DrvPresentBuffers+0x000c19fc)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 4592e000
Attempt to read from address 4592e000

.cxr (Display Context Record)

.cxr命令显示保存在指定地址的上下文记录。它还设置寄存器上下文。
.cxr [Options] [Address]

参数:

  • Options
    可以是以下选项的任意组合:
    /f Size---强制上下文大小等于Size的值(字节)。当上下文与实际目标不匹配时(例如,在WOW64调试期间在64位目标上使用x86上下文时),这将非常有用。如果指定的大小无效或不一致,将显示错误“无法将上下文转换为规范格式”。
    /w---将当前上下文写入内存,并显示其写入位置的地址。
  • Address
    系统上下文记录的地址。省略地址不会显示任何上下文记录信息,但会重置寄存器上下文。
 环境:

模式

用户模式下,内核模式

目标

实时、 崩溃转储

平台

全部

 
上下文记录中的信息可用于帮助调试发生未处理异常且无法使用精确堆栈跟踪的问题。.cxr命令显示指定上下文记录的重要寄存器。此命令还指示调试器将指定的上下文记录用作寄存器上下文。执行此命令后,调试器将访问此线程最重要的寄存器和堆栈跟踪。在允许目标再次执行或使用另一个寄存器上下文命令(.thread、.ecxr、.trap或.cxr)之前,此寄存器上下文将一直保持。在用户模式下,.cxr/w命令将上下文写入内存,并显示存储上下文的地址。可以将此地址传递给。

下面是一个例子

0:000> .cxr 010fd218
eax=464eea00 ebx=0c093020 ecx=000022a0 edx=0000008b esi=4592dff0 edi=0be60000
eip=694c4b4c esp=010fd6f8 ebp=010fd6fc iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
nvoglv32!DrvPresentBuffers+0xc19fc:
694c4b4c 0f105e10 movups xmm3,xmmword ptr [esi+10h] ds:002b:4592e000=????????????????????????????????

.ecxr /.excr(Display Exception Context Record)

.ecxr命令显示与当前异常关联的上下文记录。
.ecxr

环境:

模式

仅限用户模式

目标

仅用于故障转储 (仅适用于小型转储)

平台

全部

.ecxr命令定位当前异常的上下文信息,并显示指定上下文记录的重要寄存器。此命令还指示调试器将与当前异常关联的上下文记录用作寄存器上下文。运行.ecxr之后,调试器可以访问此线程最重要的寄存器和堆栈跟踪。在启用目标执行、更改当前进程或线程或使用另一个寄存器上下文命令(.cxr或.ecxr)之前,此寄存器上下文将一直保持。

WinDbg常用命令系列---异常相关操作的更多相关文章

  1. WinDbg常用命令系列---线程相关操作~*

    ~ (Thread Status) 波浪符(~)命令显示指定线程或当前进程中所有线程的状态. ~ Thread 参数: Thread指定要显示的线程.如果省略此参数,将显示所有线程. 环境: 模式 仅 ...

  2. WinDbg常用命令系列---符号相关命令

    ld (Load Symbols) ld命令加载指定模块的符号并更新所有模块信息. ld ModuleName [/f FileName] 参数: ModuleName指定要加载其符号的模块的名称.m ...

  3. WinDbg常用命令系列---sx, sxd, sxe, sxi, sxn, sxr, sx- (设置异常)

    简介 sx*命令控制调试器在正在调试的应用程序中发生异常或发生某些事件时采取的操作. 使用形式 sx sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2 ...

  4. WinDbg常用命令系列---显示当前异常处理程序链!exchain

    !exchain 这个!exchain扩展命令显示当前异常处理程序链. !exchain [Options] 参数: Options下列值之一: /c  如果检测到异常,则显示与调试C++ try/c ...

  5. WinDbg常用命令系列---源代码操作相关命令

    lsf, lsf- (Load or Unload Source File) lsf和lsf-命令加载或卸载源文件. lsf Filename lsf- Filename 参数: Filename指定 ...

  6. WinDbg常用命令系列---日志操作相关命令log*

    .logopen (Open Log File) .logopen命令将事件和命令的副本从调试器命令窗口发送到新的日志文件. .logopen [Options] [FileName] .logope ...

  7. WinDbg常用命令系列---断点操作b*

    ba (Break on Access) ba命令设置处理器断点(通常称为数据断点,不太准确).此断点在访问指定内存时触发. 用户模式下 [~Thread] ba[ID] Access Size [O ...

  8. WinDbg常用命令系列---!analyze

    !analyze命令简介 这个!analyze扩展显示有关当前异常或错误检查的信息. 用户模式: !analyze [-v] [-f | -hang] [-D BucketID] !analyze - ...

  9. WinDbg常用命令系列---单步执行p*

    p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddr ...

随机推荐

  1. c# EF中equal的用法注意

    Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指 ...

  2. 属性动画 补间动画 帧动画 基本使用案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. IntelliJ IDEA 换背景免费酷炫的插件(转)

    一.插件的安装 打开setting文件选择Plugins选项 Ctrl + Alt + S File -> Setting 分别是安装JetBrains插件,第三方插件,本地已下载的插件包. 二 ...

  4. The Middle English word was Affrike非洲

    Africa (n.) Latin Africa (terra) "African land, Libya, the Carthaginian territory, the province ...

  5. Firebird 审计追踪

    Firebird 打开审计追踪功能,即在服务器上打开日志记录功能,根据配置记录不同类型的服务器执行情况. 1.首先修改Firebird.conf文件,打开审计功能: AuditTraceConfigF ...

  6. testNG 注释实例

    1. 单个测试用例文件 新建TestDBConnection.java文件 import org.testng.annotations.*; public class TestDBConnection ...

  7. 基于Text-CNN模型的中文文本分类实战 流川枫 发表于AI星球订阅

    Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...

  8. Java多线程 常见问题整理

    线程 什么是线程 线程是指程序在执行过程中,能够执行程序代码的一个执行单元. 线程和进程的区别 线程:一段程序执行过程中的一个执行单元,各个线程之间共享程序的内存空间以及一些进程级的资源,各线程拥有自 ...

  9. java实现mysql数据备份

    /** * @param hostIP ip地址,可以是本机也可以是远程 * @param userName 数据库的用户名 * @param password 数据库的密码 * @param sav ...

  10. MySQL MGR--数据同步原理

    MGR复制架构 在MySQL 5.7.17版本正式推出组复制(MySQL Group Repliation MGR),用来解决异步复制和半同步复制可能产生数据不一致的问题,组复制依靠分布式一致性协议( ...