"first-chance exception..."消息中的十六进制数字是什么意思?
What do the hex numbers in the "first-chance exception..." messages mean?
例如,在消息中:
foo.exe中0x757bd36f处的首次机会异常:Microsoft C++异常:_ASExceptionInfo位于内存位置0x001278cc。。
0x757bd36f和0x001278cc是什么意思?我认为0x757bd36f意味着抛出异常时的EIP,但第二个数字呢?
正如您所推测的,第一个是发生异常时的EIP(或RIP,对于64位代码)。
在进行一些测试时,第二个数字是被捕获的异常对象的地址。但是,请记住,这与抛出的异常对象的地址不同。例如,我编写了以下测试代码:
#include <iostream>
#include <conio.h>
class XXX { } xxx;
void thrower() {
throw xxx;
}
int main() {
try {
std::cout << "Address of xxx: " << (void *)&xxx << "n";
thrower();
}
catch(XXX const &x) {
std::cout << "Address of x: " << (void *)&x << "n";
}
getch();
return 0;
}
至少在我的测试中,VS在其"第一次机会异常"消息中显示的第二个地址与我在上面代码中为x
获得的地址匹配。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思