gpt4 book ai didi

c++ - C/C++混合编程 : gdb segmentation fault frequently

转载 作者:行者123 更新时间:2023-11-28 08:22:36 25 4
gpt4 key购买 nike

当我尝试打印绝对有效的结构/变量时,我总是遇到 gdb 崩溃。如果我试图在 gdb 中调用另一个函数,它经常会崩溃。我发现只有当代码是 C/C++ 混合时才会发生这种情况。

例如,

%> p anotherFunction()
Segmentation fault

这是我的典型场景的一个小例子:

example.cc:

class foo(){
public void bar();
};

void foo::bar(){
int i=12345;
printf("%d", i);
}

foo * pfoo;

extern "C" call_foo(){
pfoo = new foo();
pfoo->bar();
}

在示例中,如果我在 printf 处停止并尝试在 gdb 中执行“p i”,它会导致崩溃。

请注意这只是一个示例,请不要在示例中查找错误。这种崩溃无处不在,但有时一切正常。

我猜这是因为我从 C 代码(本例中的 call_foo)调试到 C++ 代码,而 gdb 在切换上下文时遇到了一些问题。

如果你有任何想法,请帮忙。它真的很影响我的工作效率:(....

顺便说一句,我已经尝试过不同版本的 gdb。似乎每个版本都存在问题,包括最新版本。我也尝试过 purify/valgrind 来验证我的程序,我没有看到程序有任何错误。

最佳答案

GDB 中的任何崩溃都是 GDB 中的错误。请在 GDB 中提交错误 bugzilla .

如果多个版本的 GDB 在您的示例中崩溃,问题可能出在您的编译器上(但即使这样 GDB 也不应崩溃)。

关于c++ - C/C++混合编程 : gdb segmentation fault frequently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245204/

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