Linux下如何生成core dump文件

轉(zhuǎn)載:http://leonzhan.iteye.com/blog/803008

Linux下的C程序常常會因為內(nèi)存訪問錯誤等原因造成segment fault(段錯誤)侠驯,此時如果系統(tǒng)core dump功能是打開的答朋,那么將會有內(nèi)存映像轉(zhuǎn)儲到硬盤上來桨醋,之后可以用gdb對core文件進行分析蒙畴,還原系統(tǒng)發(fā)生段錯誤時刻的堆棧情況早芭。這對于我們發(fā)現(xiàn)程序bug很有幫助扬蕊。
使用ulimit -a可以查看系統(tǒng)core文件的大小限制治宣;使用ulimit -c [kbytes]可以設置系統(tǒng)允許生成的core文件大小右犹,例如

ulimit -c 0 不產(chǎn)生core文件
ulimit -c 100 設置core文件最大為100k
ulimit -c unlimited 不限制core文件大小

先看一段會造成段錯誤的程序:

#include <stdio.h>
int main()
{
char *ptr="linuxers.cn";
*ptr=0;
}

編譯運行后結(jié)果如下:

[leconte@localhost test]$ gcc -g -o test a.c  
[leconte@localhost test]$ ./test  
段錯誤  

此時并沒有產(chǎn)生core文件提澎,接下來使用ulimit -c設置core文件大小為無限制,再執(zhí)行./test程序念链,結(jié)果如下:

[leconte@localhost ~]$ ulimit -a  
core file size          (blocks, -c) 0  
.........  
[leconte@localhost test]$ ulimit -c unlimited  
[leconte@localhost test]$ ulimit -a  
core file size          (blocks, -c) unlimited  
..............  
[leconte@localhost test]$ ./test  
段錯誤 (core dumped)  
[leconte@localhost test]$ ls -al core.*  
-rw------- 1 leconte leconte 139264 01-06 22:31 core.2065  

可見core文件已經(jīng)生成盼忌,接下來可以用gdb分析积糯,查看堆棧情況:

[leconte@localhost test]$ gdb ./test core.2065  
GNU gdb Fedora (6.8-27.el5)  
Copyright (C) 2008 Free Software Foundation, Inc.  
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>  
This is free software: you are free to change and redistribute it.  
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"  
and "show warranty" for details.  
This GDB was configured as "i386-redhat-linux-gnu"...  
   
warning: exec file is newer than core file.  
   
warning: Can't read pathname for load map: Input/output error.  
Reading symbols from /lib/libc.so.6...done.  
Loaded symbols for /lib/libc.so.6  
Reading symbols from /lib/ld-linux.so.2...done.  
Loaded symbols for /lib/ld-linux.so.2  
Core was generated by `./test'.  
Program terminated with signal 11, Segmentation fault.  
[New process 2065]  
/#0  0x0804836f in main () at a.c:6  
6           *ptr=0;  

從上述輸出可以清楚的看到,段錯誤出現(xiàn)在a.c的第6行碴犬,問題已經(jīng)清晰地定位到了絮宁。
很多系統(tǒng)默認的core文件大小都是0,我們可以通過在shell的啟動腳本/etc/bashrc或者~/.bashrc等地方來加入 ulimit -c 命令來指定core文件大小服协,從而確保core文件能夠生成绍昂。
除此之外,還可以在/proc/sys/kernel/core_pattern里設置core文件的文件名模板偿荷,詳情請看core的官方man手冊窘游。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市跳纳,隨后出現(xiàn)的幾起案子忍饰,更是在濱河造成了極大的恐慌,老刑警劉巖寺庄,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艾蓝,死亡現(xiàn)場離奇詭異,居然都是意外死亡斗塘,警方通過查閱死者的電腦和手機赢织,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馍盟,“玉大人于置,你說我怎么就攤上這事≌炅耄” “怎么了八毯?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞄桨。 經(jīng)常有香客問我话速,道長,這世上最難降的妖魔是什么芯侥? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任尿孔,我火速辦了婚禮,結(jié)果婚禮上筹麸,老公的妹妹穿的比我還像新娘活合。我一直安慰自己,他們只是感情好物赶,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布白指。 她就那樣靜靜地躺著,像睡著了一般酵紫。 火紅的嫁衣襯著肌膚如雪告嘲。 梳的紋絲不亂的頭發(fā)上错维,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音橄唬,去河邊找鬼赋焕。 笑死,一個胖子當著我的面吹牛仰楚,可吹牛的內(nèi)容都是我干的隆判。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼僧界,長吁一口氣:“原來是場噩夢啊……” “哼侨嘀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捂襟,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤咬腕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后葬荷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涨共,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年宠漩,在試婚紗的時候發(fā)現(xiàn)自己被綠了煞赢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡哄孤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吹截,到底是詐尸還是另有隱情瘦陈,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布波俄,位于F島的核電站晨逝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏懦铺。R本人自食惡果不足惜捉貌,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冬念。 院中可真熱鬧趁窃,春花似錦、人聲如沸急前。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裆针。三九已至刨摩,卻和暖如春寺晌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澡刹。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工呻征, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人罢浇。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓陆赋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親己莺。 傳聞我的和親對象是個殘疾皇子奏甫,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在Linux下程序不尋常退出時,內(nèi)核會在當前工作目錄下生成一個core文件(是一個內(nèi)存映像凌受,同時加上調(diào)試信息)阵子。使...
    隨風化作雨閱讀 45,546評論 2 15
  • 什么是 core dump ? 進程接收到某些信號(signal)后, 異常終止胜蛉,并記錄當前內(nèi)存等狀態(tài)的鏡像文件挠进,...
    Lionel_素心閱讀 6,152評論 0 3
  • 我從來不覺得有人能陪我走完這一生 這個年紀的感情真的很脆弱 好像紙一樣 一刮就跑一揉就皺一扯就破 無論是誰...
    舒膩閱讀 168評論 0 0
  • 陽光 一絲一縷 悄悄爬上窗欞 穿過縫隙 試圖從你白嫩的指尖溜走 一不小心 卻被折疊成 一只只美麗的蝴蝶 快樂的翻飛...
    心與物語閱讀 538評論 3 6
  • 一天閑云 一灘野鶴 一座草堂 一身清風 拂去相思淚 斬斷情愁怨 紅塵過往事 煙華皆已然 幽幽綠水流淌 茫茫白霧鎖岸...
    一蓑煙雨feng閱讀 224評論 6 8