运行二进制文件时出现一般保护错误。但是没有核心转储。如何调试问题?
这是我正在使用的“ld”的问题吗?
内核:testbin[24879] 一般保护 ip:7fd7271585e0 sp:7fff1ef55070 error:0 in ld-2.14.so[7fd727142000+20000]
在调试之前,使用调试符号(选项)重新编译您的程序-g
,否则您将没有足够的详细信息来有效快速地调试它(如文件名、函数、行)。
还有更多用于调试程序的程序,但现在我建议您使用 valgrind。
所以通过 valgrind 运行你的程序:
valgrind /path/to/your/program
然后重现导致您的程序出现General Protection Fault的步骤。