任務發生異常,需要記錄遺言信息,利用gdb調試,因此需要記錄coredump文件。
設置查看:
在root用戶下執行sysctl -a | grep core,查看core文件的配置是否正確
命令設置:
1)使用命令 ulimit -c unlimited 設置coredump文件可以使用最大空間;
或去vi /etc/security/limits.conf修改
2)/proc/sys/kernal/core_pattern 可以設置coredump產生的路徑和文件名格式。如果不修改,默認在程序執行目錄下產生。
或使用命令修改:
sysctl -w kernel.core_pattern=/core/core.%e.%p
如果設置了上述兩點,還是不能產生coredump,可能是以下原因:
1) 有些信號量默認是不產生coredump的,可以用 man signal 看一下。
2) 硬盤空間不夠了,coredump需要占用很大的硬盤空間(上G的空間);
3) ulimit -c 命令只在當前terminal上有效,也就是程序啟動的terminal設置該命令才有效。該命令無效,當然就不能產生coredump了。