gpt4 book ai didi

c++ - "first-chance exception..."消息中的十六进制数字是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 18:39:15 28 4
gpt4 key购买 nike

例如,在消息中:

First-chance exception at 0x757bd36f in foo.exe: Microsoft C++ exception: _ASExceptionInfo at memory location 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 获得的地址相匹配。

关于c++ - "first-chance exception..."消息中的十六进制数字是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com