Linux下程序崩溃dump时的 core文件的使用方法
1、在启动程序前执行
ulimit -c unlimited
unlimited 表示生成文件的大小限制,也可以修改为自定义的大小,例如:
ulimit -c 1024
对 core 文件的大小进行限制,单位为 blocks ,一般 1 block=512 bytes ,设置太小可能导致不会生成文件,我的程序如果是unlimited的话,core文件大概200Mb左右,所以一般还能接受,尽量使用unlimited
以确保每次都能生产core文
2、生成路径
core 文件默认生成在程序的工作目录,可以对生成路径进行设置,需要保证对对应目录有足够空间并具有写权限、 还有,如果你的没有妥善的退出关闭机制,比如关闭软件的时候是崩溃掉,而不是安全关闭的,这样你每次关闭软件的时候也会生产core文件,
导致的问题就是,你不知道这个core文件是你关闭时产生的,还是运行过程中crash掉产生的,
3、调试方法
$ gdb a.out core
(gdb) bt