c - 优胜美地 : SIGBUS error when calling function at gdb command line 上的 gdb

标签 c debugging emacs gdb osx-yosemite

我正在使用 GDB 在 Yosemite OSX 上调试程序。在断点处,我想使用一个内部函数打印出一些信息,但即使是一个微不足道的函数,我也会收到 SIGBUS 错误。例如:

Breakpoint 1, ...
(gdb) print my_info_function()
Program received signal SIGBUS, Bus error.
<function called from gdb>
The program being debugged was signaled...

my_info_function 是:

const char *my_info_function() {
  return "hello";
}

此外,如果我用gdb运行程序,然后在运行时中断它,那么无论中断发生在上述断点之前还是之后,print my_info_function()都可以正常工作.

这个问题似乎是在升级到 Yosemite(从 Lion)之后开始出现的,所以我倾向于认为它与此有关。我尝试使用不同的编译器(clang、gcc-4.9、brew vs macports),并使用/重新安装/重建不同的 gdb(brew、macports 以及 this brew gdb version),但都无济于事。

关于如何解决这个问题有什么建议吗?我正在使用 emacs + gdb 并希望保持这种状态。我可能对 emacs + lldb 没问题,但似乎对是否/何时支持它存在一些争论。

最佳答案

Any suggestions as to how to fix this?

这看起来像是 GDB 中的错误。

您可以尝试从源代码构建 GDB,自行调试 GDB,然后将补丁发送到 gdb-patches mailing list , 或者直接在 GDB bugzilla 中报告(并希望有人修复它)。

关于c - 优胜美地 : SIGBUS error when calling function at gdb command line 上的 gdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439993/

相关文章:

javascript - 在浏览器中查找监听器以调试 javascript 的最快方法是什么?

python - emacs-ipython-notebook 和 SCIMAX

emacs - 为什么 font-lock-keyword-face 在 Emacs 中突出显示双引号内的文本?

c - 在Emacs中进行C开发时如何跳转到函数?

c - 在 C 中如何将浮点值限制为小数点后仅两位?

c - 链接列表出现问题 - 为什么新元素没有添加到我的列表中?

javascript交互式调试(相当于python的pdb.set_trace())

c - 如何使用CMake自动生成C头文件?

c - 使用嵌套 if 查找四个数字中最大的一个程序

exception - 调试时如何忽略当前函数中未捕获的异常?