开发过程中的一次GDB调试

来源:互联网 发布:合肥java招聘 编辑:程序博客网 时间:2024/06/05 17:16

 

1. 程序运行过程中偶尔出现段错误如下:

 

2.对生成的 core 文件的大小不进行限制

ulimit – c unlimited

3.添加g++中的调试选项,ggdb3用于输出调试信息,其中3标识调试级别,调试级别越高输出的冗余信息越多。

4. 重新段错误生成core文件,由于是偶尔发生段错误,所以得多运行几次才行:

 

生成了core文件名称为:core.4982,其中4982是进出的PID值。

5. 调试core文件

 

gdb没有找到调试符号信息。于是需要加入符号信息。

 

下面拿到了符号信息,但是对解决问题没有帮助。 

 

于是再运行了几次,终于爆出了问题的提示。

 

 

两次释放内存的错误,而且_ZN4CFCR9TDatabase18disconnectDatabaseEv+0x20给出了提示,连接了一次数据库,却释放了两次。无意中的错误啊。