我在使用GNU工具构建的AIX上调试C ++程序时遇到问题。当程序在调试器外部运行时:
-bash-4.3$ ./cryptestcwd v
Segmentation fault (core dumped)
当程序在GDB下运行时,调试器会打印消息 During startup program terminated with signal SIGKILL, Killed.
并退出:
额外的皱纹是,这只发生在Autotools front-end。我们的常规GNUmakefile不会发生这种情况。我们为Autotools和GNUmakefile提供相同的参数。我们知道Autotools adds additional options甚至是adds C files到C ++项目,但我们无法控制它。
相关问题位于During startup program terminated with signal SIGKILL, Killed,但没有有用的答案。另外两个相关问题只是表明SIGKILL
无法被捕获。另请参阅Debugging program that catches SIGKILL under Linux和Handling signals with gdb。
如何进一步调试问题?
答案 0 :(得分:2)
启动时SIGKILL
最有可能意味着AIX运行时加载程序找不到二进制链接的某个库(Linux运行时加载程序会在发生这种情况时产生更有用的错误消息)。
您应该验证ldd cryptestcwd
没有抱怨任何内容。
您还可以尝试加载在GDB之外运行程序时生成的core
到GDB中 - 可能还有其他线索(使用info shared
,where
, x/i $pc
命令)。