.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. java网站架构演变过程

    网站架构演变过程. .传统架构.传统的SSH架构,分为三层架构web控制层.业务逻辑层.数据库访问层..传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务 ...

  2. 【LEETCODE】62、数组分类,hard级别,题目:42、128

    package y2019.Algorithm.array.medium; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.a ...

  3. 「UER#2」谣言的传播

    「UER#2」谣言的传播 写了个乱搞,怎么莫名其妙就AC了,这...,之后又想了30min结合题解终于会证了. 首先最大值比较简单,记 \(f_i\) 为第 \(i\) 个点能到达的点数,上界 \(\ ...

  4. yii框架里DetailView视图和GridView的区别

    1,首先从语义上分析 DetailView是数据视图,用于显示一条记录的数据,相当于网页中的详情页 GridView是网格视图,用于显示数据表里的所有记录,相当于网页里的列表页 2.用法上的区别 首先 ...

  5. Java CookieUtils

    Java CookieUtils /** * <html> * <body> * <P> Copyright 1994 JsonInternational</ ...

  6. JUC - Monitor监控ThreadPoolExecutor

    JUC - Monitor监控ThreadPoolExecutor 一个自定义Monitor监控ThreadPoolExecutor的执行情况 TASK WokerTask class WorkerT ...

  7. 《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP

    Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理解并方便快捷的 ...

  8. Java框架之MyBatis框架(二)

    Mybatis框架是相对于优化dao层的框架,其有效的减少了频繁的连接数据库(在配置文件xml中进行配置),将sql语句与java代码进行分离(写在XXXXmapper.xml文件中,一个表对应一个x ...

  9. 把项目中的vant UI组件升级

    首先把之前 的VANT 卸载掉 npm uninstall vant 然后重新安装 一次vant npm i vant -S

  10. python3中try异常调试 raise 异常抛出

    一.什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Py ...