$ ulimit -a利用上面的命令我們可以查看系統設定的core文件選項:
在開發調試階段可以用 ulimit 命令改變這個限制 ,允許產生 core文件。
$ ulimit -c [size]例如: 用ulimit 命令改變Shell 進程的 Resource Limit,允許 core文件最大為 1024K。這樣進程被down掉後,就會產生core文件了
$ ulimit -c 1024
當然,如果不想生成core文件,可以使用命令: $ ulimit -c 0
實 例
SIGQUIT信號(鍵入Ctrl-\) 的默認處理動作是終止進程並且core dump!
寫一個死循環程序,前台運行這個程序,然後鍵入 Ctrl-\ ,使該進程收到SIGQUIT信號後終止並產生core文件
/************************************************************************* > File Name: test.c > Author:Lynn-Zhang > Mail: [email protected] > Created Time: Fri 15 Jul 2016 03:03:57 PM CST ************************************************************************/ #include<stdio.h> int main() { printf("pid is :%d\n",getpid()); while(1); return 0; }
這裡的core.2678就是該進程被down掉所對應的core文件,其中的2678是該進程的pid。
ulimit 命令改變了Shell 進程的 Resource Limit,test進程的 PCB由 Shell進程復制而來 ,所以也具有和 Shell進程相同的 Resource Limit值 ,這樣就可以產生 Core Dump了。 core文件的使用 在core文件所在目錄下,gdb目標文件,它會啟動GNU的調試器,來調試core文件,並且會顯示 生成此core文件的程序名,中止此程序的信號等等
除此之外,core文件的內容是二進制的!
http://xxxxxx/Linuxjc/1142288.html TechArticle