gpt4 book ai didi

c++ - 使用 dbx 在 AIX 上捕获 C++ 异常

转载 作者:搜寻专家 更新时间:2023-10-31 00:37:15 24 4
gpt4 key购买 nike

我有一个 C++ 应用程序,它在 AIX 机器上以某些输入数据的“错误分配”错误消息终止。

有没有办法在 dbx 中运行程序并在抛出异常时捕获异常?我在 IBM 的文档中没有看到任何相关信息。

最佳答案

如果您的 C++ 应用程序是使用 XL C/C++ 编译的,请在 __DoThrowV6 上设置断点。

$ cat throw.C
int foo(int x)
{
if (x < 0)
throw 99;
return x+1;
}

int main()
{
int y;
y = -5;
try
{
foo(y);
}
catch(...)
{
}
return 0;
}

$ xlC -g -o throw throw.C

$ dbx ./throw
Type 'help' for help.
reading symbolic information ...
(dbx) stop in __DoThrowV6
[1] stop in __DoThrowV6
(dbx) run
[1] stopped in __DoThrowV6 at 0xd1be7e00
0xd1be7e00 (__DoThrowV6) 7c0802a6 mflr r0
(dbx) where
__DoThrowV6() at 0xd1be7e00
foo(int)(x = -5), line 4 in "throw.C"
main(), line 14 in "throw.C"
(dbx)

__DoThrowV6是在抛出异常的时候调用的,所以从调用栈可以看出异常是从源文件throw.C的第4行抛出的

关于c++ - 使用 dbx 在 AIX 上捕获 C++ 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245255/

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