我只是尝试在Mac OSX版本10.12上使用gdb调试代码,但在gdb中启动程序时总是会收到此未知错误。
我在安装后对gdb进行了编码,并使用-g标志编译了我的代码。
这就是发生的事情:
computer:hello user$ gdb a.out
GNU gdb (GDB) 7.12
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin16.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...Reading symbols from /Users/user/Documents/Programming/hello/a.out.dSYM/Contents/Resources/DWARF/a.out...done.
done.
(gdb) r
Starting program: /Users/user/Documents/Programming/hello/a.out
During startup program terminated with signal ?, Unknown signal.
临时我收到了SIGTRAP信号,但我无法弄清楚为什么它现在再次抛出未知信号。
答案 0 :(得分:9)
Mac OS X 10.12.5和更新版
的解决方案在你的home-direcetory中创建一个.gdbinit文件,并写下&#34;设置启动与shell关闭&#34;在它。
可以使用vi ~/.gdbinit
创建文件。
打开一个新终端,gdb可以正常工作。
答案 1 :(得分:2)
如果您仍在寻找解决方案,这对我有用:
在恢复模式下重启机器,打开终端并输入以下内容
$ csrutil enable --without debug
重新启动机器,gdb应该照常工作(这里有完整的主题:http://sourceware-org.1504.n7.nabble.com/gdb-on-macOS-10-12-quot-Sierra-quot-td415708.html#a415940)
答案 2 :(得分:1)
这是因为您使用的是最新版本的OSX 10.12或10.12.1。降级或等待OSX / GDB修复似乎是最好的选择。我整天都在弄清楚这一点。不要浪费你的时间尝试与Sierra一起解决它!
答案 3 :(得分:0)
使用新的gdb 8.3,它对我有用。 (不适用于gdb 8.0.1或8.2)