在Linux服务器上跑程序的时候,经常遇到程序出错,但是不能定位错误的情况,core dump文件可以帮这个忙。
1.测试系统是否已经打开core开关,使用如下命令:
ulimit -c
输出为0,则没有打开,输出为1,则已经打开core开关。
2.打开core文件开关,使用:
ulimit -c unlimited
若是想永久有效,执行以下两步:
(1)编辑/root/.bash_profile文件,在其中加入ulitmit -S -c unlimited
(2)source /root/.bash_profile
3.core文件的产生
需要在编译的时候加入-g参数,这样在程序崩溃的时候就会在程序所在目录产生core文件。
4.core文件的查看
gdb 程序名 core文件名 查看core文件
使用where或者bt查看程序崩溃时的堆栈信息,这样会看到程序第几行发生错误。
使用Quit退出gdb。