经常遇到段错误,用core调试能很轻松的找到出错点。
系统默认是不产生core文件的,要产生core文件,首先用下面的命令查看:
ulimit -a
可以看到这一行:
core file size (blocks, -c) 0
现在只要运行命令
ulimit -c unlimited
就能在程序内存错误的时候产生core文件,但是要注意,这个修改只是展示的,如果换了终端或重启,修改会被还原的。
现在,如果程序段错误,就会生成一个core.pid的core文件(rhel5.5),接下来,只需要:
gdb a.out core.1333
进入后,用bt命令查看段错误发生的函数及其堆栈。
很方便吧