【问题标题】:Debugging fails with gdb: "Could not find the frame base", but works with lldbgdb 调试失败:“找不到框架库”,但适用于 lldb
【发布时间】:2014-11-09 21:57:42
【问题描述】:

我正在尝试使用 gdb 调试我的 C++ 应用程序,但是当我尝试打印任何变量“p var”时,我收到以下消息:

找不到函数名的框架基础。

但是,可以设置断点“break sourcefile:15”并单步执行源代码。

我在 OSX 10.9 上使用 gcc48 4.8.3 和编译器标志 -Wall -Wno-write-strings -std=c++11 -m64 -fopenmp -msse4.2 -O0 -g 编译我的应用程序。 gdb 的版本为“GNU gdb (GDB) 7.7.1”。

当我使用 lldb 进行调试时,似乎一切正常。

你知道为什么 GDB 不工作吗?

【问题讨论】:

  • OS X 10.9 默认不附带 gdb。您是否单独安装并进行了代码签名?
  • @HaithamGad 感谢您的评论。是的,我试过了。我编译了自己的 gdb 并签名。我还尝试用 brew 安装它并签名。似乎没有任何效果。
  • 尝试使用 -gstrict-dwarf 编译。也许这个版本的 gcc 正在编写非标准的 dwarf 扩展,该版本的 gdb 还不能读取这些扩展。

标签: c++ debugging gdb lldb


【解决方案1】:

我在 MacOS > 10.8 上遇到了同样的问题,两年来没有在 Mac 上使用 gdb+gcc,今天我设法通过为编译器选项添加 -gdwarf-3 选项来解决它,它开始工作(安装了 gcc 6使用自制软件,gdb 7.11)。 Eclipse+CDT 调试现在也可以工作了。

【讨论】:

    猜你喜欢
    • 2021-06-07
    • 2020-03-04
    • 2012-04-15
    • 2021-06-14
    • 1970-01-01
    • 2015-06-04
    • 2014-05-03
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多