【发布时间】: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 还不能读取这些扩展。