最近碰到一个非常诡异的Linux 程序崩溃现象,Eclipse CDT编译出来的Debug版程序启动即崩,感觉程序都没有完全加载好就崩溃了,堆栈如下:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000001 in ??()
(gdb)bt
#0 0x0000000000000001 in ??()
#1 0x00007fffffffe27d in ??()
#2 0x0000000000000000 in ??()
崩溃堆栈让人是一头雾水,看不出任何的端倪。最终确切的原因是没定位出来,但是可以确定的是程序编译依赖的问题,重新整理并添加了一下程序的依赖库,重新编译后就ok了。
(程序启动即崩溃出问题的时候没有添加部分依赖库,竟然可以正常编译通过,整个过程感觉有些诡异,暂未深究,只定位到是Eclipse CDT编译Debug版本程序的依赖问题)
编译问题往往崩溃的莫名其妙,碰到类似情况往这方面怀疑是个不错的切入点。