【发布时间】:2019-04-08 09:55:21
【问题描述】:
我在安装了 Ubuntu 18.10 的 VirtualBox 上,而且我是新手。我的代码创建了 100 个在共享内存上工作的分叉子。有时我会收到此消息
Sender(Pid = (childPID)) 以状态 0x008B 终止。
在网上搜索我发现这可能是 SIGSEGV 错误。这是真的吗? 最后,有没有办法找到代码在 1000 多行中失败的地方?我尝试使用本指南:http://www.unknownroad.com/rtfm/gdbtut/gdbsegfault.html 来查找 gdb 的错误,但我的终端说我“没有堆栈”。我对这种问题完全陌生,任何提示将不胜感激。
【问题讨论】:
-
如果你“没有堆栈”,它可能暗示你在 stack 上有一个缓冲区溢出,这会在返回时覆盖保存的堆栈指针。
-
用调试符号重新编译你的程序。将
-g3或-ggdb3添加到gcc。