本文共 5918 字,大约阅读时间需要 19 分钟。
原文地址:
.lastevent 命令显示最近一次发生的异常或事件。
我们可以看出,当前为2号线程发生异常,线程0前面的点号(.)表示它是当前线程。线程2前面的数字号(#)表示它是产生异常或调试器附加到进程时活动的线程。如果使用CTRL+C、 CTRL+BREAK或Debug | Break中断到调试器,总是会产生一个 0x80000003异常代码。
异常 | 值 | 描述 |
EXCEPTION_ACCESS_VIOLATION | 0xC0000005 | 程序企图读写一个不可访问的地址时引发的异常。例如企图读取0地址处的内存。 |
EXCEPTION_ARRAY_BOUNDS_EXCEEDED | 0xC000008C | 数组访问越界时引发的异常。 |
EXCEPTION_BREAKPOINT | 0x80000003 | 触发断点时引发的异常。 |
EXCEPTION_DATATYPE_MISALIGNMENT | 0x80000002 | 程序读取一个未经对齐的数据时引发的异常。 |
EXCEPTION_FLT_DENORMAL_OPERAND | 0xC000008D | 如果浮点数操作的操作数是非正常的,则引发该异常。所谓非正常,即它的值太小以至于不能用标准格式表示出来。 |
EXCEPTION_FLT_DIVIDE_BY_ZERO | 0xC000008E | 浮点数除法的除数是0时引发该异常。 |
EXCEPTION_FLT_INEXACT_RESULT | 0xC000008F | 浮点数操作的结果不能精确表示成小数时引发该异常。 |
EXCEPTION_FLT_INVALID_OPERATION | 0xC0000090 | 该异常表示不包括在这个表内的其它浮点数异常。 |
EXCEPTION_FLT_OVERFLOW | 0xC0000091 | 浮点数的指数超过所能表示的最大值时引发该异常。 |
EXCEPTION_FLT_STACK_CHECK | 0xC0000092 | 进行浮点数运算时栈发生溢出或下溢时引发该异常。 |
EXCEPTION_FLT_UNDERFLOW | 0xC0000093 | 浮点数的指数小于所能表示的最小值时引发该异常。 |
EXCEPTION_ILLEGAL_INSTRUCTION | 0xC000001D | 程序企图执行一个无效的指令时引发该异常。 |
EXCEPTION_IN_PAGE_ERROR | 0xC0000006 | 程序要访问的内存页不在物理内存中时引发的异常。 |
EXCEPTION_INT_DIVIDE_BY_ZERO | 0xC0000094 | 整数除法的除数是0时引发该异常。 |
EXCEPTION_INT_OVERFLOW | 0xC0000095 | 整数操作的结果溢出时引发该异常。 |
EXCEPTION_INVALID_DISPOSITION | 0xC0000026 | 异常处理器返回一个无效的处理的时引发该异常。 |
EXCEPTION_NONCONTINUABLE_EXCEPTION | 0xC0000025 | 发生一个不可继续执行的异常时,如果程序继续执行,则会引发该异常。 |
EXCEPTION_PRIV_INSTRUCTION | 0xC0000096 | 程序企图执行一条当前CPU模式不允许的指令时引发该异常。 |
EXCEPTION_SINGLE_STEP | 0x80000004 | 标志寄存器的TF位为1时,每执行一条指令就会引发该异常。主要用于单步调试。 |
EXCEPTION_STACK_OVERFLOW | 0xC00000FD | 栈溢出时引发该异常。 |
!analyze扩展显示当前异常或bug check的信息。一般使用!analyze -v
分析参考:
如下述为一个对NULL指针赋值生成的dump,自动生成dump可以参考
当ExceptionCode为EXCEPTION_ACCESS_VIOLATION时,ExceptionInformation[0]=0表示线程试图读取不可访问的数据ExceptionInformation[0]=1
表示线程试图写入不可访问的地址,很明显,这里表示第二种,具体参考MSDN
The LAST_CONTROL_TRANSFER field shows the last call on the stack. In this case, the code at address0x76b6337acalled a function at 0x1211002. You can use these addresses with the command to determine what modules and functions these addresses reside in.
3.符号文件简介:
符号文件对于调试程序是相当重要的,通常符号文件中包含以下内容
全局变量的名字和地址
函数名,地址及其原型
帧指针优化数据
局部变量的名字和地址
源文件路径以及每个符号的行号
变量,结构等的类型信息
转载地址:http://iehab.baihongyu.com/