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

标签 c++ c crash gdb

当我尝试打印绝对有效的结构/变量时,我总是遇到 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/

相关文章:

android - 当Mediaplayer在Service Class中停止时,应用程序停止工作

%p 和 cout &ptr 之间的 C++ 区别

c++ - 如何修复不影响性能的 "runtime error"?

c++ - 删除链接列表中找到的所有特定键

c - 无法使用 gcc48 编译我的 C 文件

XCode 4.2.1 在发布时在 Lion 10.7.2 上崩溃

c++ - |= 运算符,可能的短路评估?

c++ - USB 代理驱动程序或等效解决方案?

c - POSIX/C : chdir() not changing the directory with spaces?

android - Android Studio:初始化ImageButton时崩溃