C 使用调试器gdb时出现未知的结束信号
我已经在MacOSX上安装了GDB,为了测试它是否有效,我使用了下面的C程序C 使用调试器gdb时出现未知的结束信号,c,macos,gdb,C,Macos,Gdb,我已经在MacOSX上安装了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]
#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;
}
真的不知道它从哪里来。我已经添加了一个证书,以确保gdb在OS X上正常工作,但我没有找到任何方法来解决此问题。如果您在Sierra上,这是意料之中的。 GDB与macOS Sierra不兼容,即使是最新版本(7.12) 我们也许应该等待GDB的另一个版本,或者macOS的另一个更新,以便修复这个bug。从这个答案: 这就是我轻松解决问题的方法。[更新:根据收到的反馈和有待验证的信息,此解决方案似乎适用于macOS Sierra 10.12,但不适用于macOS Sierra 10.12.2] 请参见此处的视频说明 退出gdb 使用文本编辑器(例如升华文本),在用户文件夹中保存一个名为“.gdbinit”[排除引号]的文件 在文件中添加以下内容:“在关闭shell的情况下设置启动”[排除引号] 保存文件 gdb现在应该可以工作了 来源 gdbinit位于何处,如何编辑它 Sierra(10.12)似乎不支持
gdb
。我试着按照一个教程创建一个证书。之后,当我运行gdb
时,我得到了前面提到的相同错误
苹果使用
lldb
。有人告诉我,它工作得很好,可以与Eclipse集成。这是一个。对我来说,它在MacOS Sierra 10.12.4版上运行得非常好,只需卸载并安装gdb as
希望这对任何人都有帮助 我通过自制软件安装了gdb。 在安装结束时,它说: 在10.12(Sierra)或更高版本的SIP中,您需要运行以下命令:
echo "set startup-with-shell off" >> ~/.gdbinit
这是使它发挥作用所必需的。此外,我还必须确保在Eclipse调试配置中设置了
.gdbinit
,请参见。请确保向下滚动,下面可能列出了一个解决方案。因此,仅就记录而言,它在High Sierra(版本:10.13.2(17C88))上也不起作用。我得到了相同的错误:在启动过程中,程序以信号?终止,未知信号。
在签署gdb后为我工作。为了简化,您可以从终端运行以下命令:touch~/.gdbinit;关闭shell设置启动>~/.gdbinit
命令错误<代码>触摸~/.gdbinit;echo“在关闭外壳的情况下设置启动”>~/.gdbinit是正确的。与上述注释不同,如果您不想删除当前的~/.gdbinit
:触摸~/.gdbinit;echo“使用shell off设置启动”>~/.gdbinit
您应该尝试下面的解决方案,并指出哪种解决方案帮助您解决了问题。它与gdb 8.0(从源代码安装)和Visual Studio code.gdb手册(适用于gdb 8.2.50.20190106-git版本)一起在High Sierra 10.13.2上工作;第28页对此错误进行了说明:(该错误)表示使用“exec wrapper”指定的shell或包装器崩溃,而不是您的程序。
,因此此解决方案有效。否决,因为如果您按照上述说明操作,Sierra将支持gdb。echo“setstartuptwithshell off”>>~/.gdb您还必须为gdb创建一个证书才能工作:请参阅:是的,这很麻烦,但拥有gdb是值得的。您可以选择运行“brew doctor”,以确保您的代码是最新的。
echo "set startup-with-shell off" >> ~/.gdbinit