我在 AIX 上调试使用 GNU 工具构建的 C++ 程序时遇到问题。当程序在调试器之外运行时:
-bash-4.3$ ./cryptestcwd v
Segmentation fault (core dumped)
当程序在GDB下运行时,调试器打印消息During startup program terminated with signal SIGKILL, Killed.
并退出:
另一个问题是,这只发生在自动工具前端。我们常规的 GNUmakefile 不会发生这种情况。我们为 Autotools 和 GNUmakefile 提供相同的参数。我们知道 Autotools添加附加选项乃至添加C文件到 C++ 项目,但我们无法控制它。
相关问题位于在启动过程中,程序以信号 SIGKILL、Killed 终止,但它没有有用的答案。另外两个相关问题只是说明SIGKILL
不能被抓住。另请参阅Linux下捕获SIGKILL的调试程序 and 使用 gdb 处理信号.
如何进一步调试问题?
The SIGKILL
启动时很可能意味着 AIX 运行时加载器无法找到二进制链接所针对的某个库(当发生这种情况时,Linux 运行时加载器会生成更有用的错误消息)。
您应该验证一下ldd cryptestcwd
不抱怨任何事情。
您也可以尝试加载core
当你在 GDB 之外运行你的程序到 GDB 时产生的——那里可能有额外的线索(使用info shared
, where
, x/i $pc
命令)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)