您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關linux下core文件是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Core文件其實就是內存的映像,當程序崩潰時,存儲內存的相應信息,主用用于對程序進行調試。當程序崩潰時便會產生core文件,其實準確的應該說是core dump 文件,默認生成位置與可執行程序位于同一目錄下,文件名為core.***,其中***是某一數字。
生成方法
查看當前 core 文件的狀態
$ ulimit -a ... -c: core file size (blocks) 0 # 關閉狀態 ...
打開生成開關
ulimit -c unlimited ulimit -a ... -c: core file size (blocks) unlimited ...
對 core 文件的大小進行限制,單位為 blocks ,一般 1 block=512 bytes ,設置太小可能導致不會生成文件
$ ulimit -c 1024 $ ulimit -a ... -c: core file size (blocks) 1024 ...
關閉生成開關
ulimit -c 0 ulimit -a ... -c: core file size (blocks) 0 ...
上面對 core 文件的操作僅對當前生效,若需要永久生效,則要將相應操作寫入 /etc/profile
core 文件默認生成在程序的工作目錄,可以對生成路徑進行設置,需要保證對對應目錄有足夠空間并具有寫權限
ulimit -c 0 ulimit -a ... -c: core file size (blocks) 0 ...
其中命名使用的參數列表
%p - insert pid into filename # 添加 pid %u - insert current uid into filename # 添加當前 uid %g - insert current gid into filename # 添加當前 gid %s - insert signal that caused the coredump into the filename # 添加導致產生 core 的信號 %t - insert UNIX time that the coredump occurred into filename # 添加 core 文件生成時的 unix 時間 %h - insert hostname where the coredump happened into filename # 添加主機名 %e - insert coredumping executable name into filename # 添加命令名
/proc/sys/kernel/core_uses_pid 這個文件的值若為1,則無論時候配置 %p ,最后生成的 core 文件都會添加 pid
調試方法
可以使用 gdb 對 core 文件進行調試,編譯是需要帶上 -g 選項
$ gdb a.out ... (gdb) core-file core ... (gdb) bt ...
如需要在 PC 上調試嵌入式設備產生的 core 文件,則需要選取相應平臺的 gdb 工具,并在進入 gdb 后設置符號文件的位置
$ xxx-xxx-gdb a.out ... (gdb) solib-search-path xxx.so:xxx.so ... (gdb) core-file core ... (gdb) bt ...
關于“linux下core文件是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。