core文件在什么位置創(chuàng)建 在 進(jìn)程當(dāng)前工作目錄的下創(chuàng)建。通常與程序在相同的路徑下。但如果程序中調(diào)用了chdir函數(shù),則有可能改變了當(dāng)前工作目錄。這時(shí)core文件創(chuàng)建在 chdir指定的路徑下。有好多程序崩潰了,我們卻找不到core文件放在什么位置。和chdir函數(shù)就有關(guān)系。當(dāng)然程序崩潰了不一定都產(chǎn)生core文 件。
什么時(shí)候不產(chǎn)生core文件
在下列條件下不產(chǎn)生core文件:
( a )進(jìn)程是設(shè)置-用戶(hù)-ID,而且當(dāng)前用戶(hù)并非程序文件的所有者;
( b )進(jìn)程是設(shè)置-組-ID,而且當(dāng)前用戶(hù)并非該程序文件的組所有者;
( c )用戶(hù)沒(méi)有寫(xiě)當(dāng)前工作目錄的許可權(quán);
( d )文件太大。core文件的許可權(quán)(假定該文件在此之前并不存在)通常是用戶(hù)讀/寫(xiě),組讀和其他讀。
如何產(chǎn)生core文件
系統(tǒng)中默認(rèn)的是禁止產(chǎn)生core文件的
$ ulimit -c
0
$ ulimit -c 1000 允許產(chǎn)生core文件,并且限制大小為1000
還是無(wú)法產(chǎn)生core文件,檢查用戶(hù)沒(méi)有寫(xiě)當(dāng)前工作目錄的許可權(quán)
如何用gdb調(diào)試core文件$ gdb yourprogram corefile