小编Pal*_*ted的帖子

缺少调用堆栈帧与断言gdb 7.6在mac上

在调试一个失败的程序时,我无法在gdb中获得调用堆栈.我在Mavericks上使用了Homebrew的g ++ 4.8和gdb.

/usr/local/bin/g++-4.8 --version 
g++-4.8 (GCC) 4.8.2
/usr/local/bin/gdb --version
GNU gdb (GDB) 7.6.2
Run Code Online (Sandbox Code Playgroud)

这是重建问题的最小测试

//test.cpp
#include <iostream>
#include <cassert>
int main()
{
  int i = 42;
  std::cout << "Hello World!" << i << std::endl;
  assert(0); // this also happens with abort() which assert(0) winds up calling
}
Run Code Online (Sandbox Code Playgroud)

编译和使用

/usr/local/bin/g++-4.8 -g -c test.cpp -o test.o
/usr/local/bin/g++-4.8 -g test.o -o test       
/usr/local/bin/gdb test                        
(gdb) r
Starting program: /Users/pmelsted/tmp/test/test 
Hello World!42
Assertion failed: (0), function main, file test.cpp, line 7.

Program received …
Run Code Online (Sandbox Code Playgroud)

c++ macos gdb

7
推荐指数
1
解决办法
1191
查看次数

标签 统计

c++ ×1

gdb ×1

macos ×1