1. 程序运行过程中偶尔出现段错误如下:
2.对生成的 core 文件的大小不进行限制
ulimit – c unlimited
3.添加g++中的调试选项,ggdb3用于输出调试信息,其中3标识调试级别,调试级别越高输出的冗余信息越多。
4. 重新段错误生成core文件,由于是偶尔发生段错误,所以得多运行几次才行:
生成了core文件名称为:core.4982,其中4982是进出的PID值。
5. 调试core文件
gdb没有找到调试符号信息。于是需要加入符号信息。
下面拿到了符号信息,但是对解决问题没有帮助。
于是再运行了几次,终于爆出了问题的提示。
两次释放内存的错误,而且_ZN4CFCR9TDatabase18disconnectDatabaseEv+0x20给出了提示,连接了一次数据库,却释放了两次。无意中的错误啊。