我已经在 Mac OS X 上安装了 GDB,为了测试它是否有效,我使用了以下 C 程序。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int *my_array = (int *) malloc(5 * sizeof(int));
int i;
for (i = 0; i < 1000000; i++) {
my_array[i] = i;
}
free(my_array);
return 0;
}
我编译的时候出现错误,这是正常的(分段错误)
然而,当添加 -g 标志在编译命令并在编译的程序上运行 gdb 中,启动命令后我收到此消息run
During startup program terminated with signal ?, Unknown signal.
实在不知道从哪里来的。我添加了一个证书来确保 gdb 在 OS X 上正常工作,但我没有找到任何可以解决此问题的方法。
从这个答案:https://stackoverflow.com/a/40437725/1060955 https://stackoverflow.com/a/40437725/1060955
这就是我轻松解决问题的方法。 [更新:根据收到但尚未验证的反馈,该解决方案似乎适用于 macOS Sierra 10.12,但不适用于 macOS Sierra 10.12.2]
请参阅此处的视频说明
Quit gdb
使用文本编辑器,例如Sublime Text,在您的用户文件夹中保存一个名为“.gdbinit”的文件[排除引号]。
在文件中添加以下内容:“setstartup-with-shelloff”[排除引号]
保存文件
gdb 现在应该可以工作了
Sources
https://stackoverflow.com/a/40437725/1060955 https://stackoverflow.com/a/40437725/1060955
.gdbinit 位于哪里以及如何编辑它?
https://sourceware.org/gdb/onlinedocs/gdb/Starting.html https://sourceware.org/gdb/onlinedocs/gdb/Starting.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)