我们从客户的盒子上运行我们的软件获得核心文件.不幸的是因为我们总是使用-O2 进行编译而没有调试符号,这导致我们无法弄清楚它崩溃的原因,我们已经修改了构建,所以它们现在一起生成-g和-O2.然后,我们建议客户运行-g二进制文件,以便更容易调试.
我有几个问题:
这是一个崩溃的例子,要求我们告诉客户获得-g ver.二进制文件:
Program terminated with signal 11, Segmentation fault.
#0 0xffffe410 in __kernel_vsyscall ()
(gdb) where
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x00454ff1 in select () from /lib/libc.so.6
...
<omitted frames>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想解决一下为什么应用程序崩溃的原因 - 我怀疑它是内存损坏,但我不是100%肯定.
严格禁止远程调试.
谢谢