Linux下如何生成coredump文件
coredump文件路徑
網(wǎng)上很多博文說到 coredump 文件默認(rèn)會在某個(gè)目錄下生成。
按照網(wǎng)上很多的說法,運(yùn)行程序就會生成 core 文件,一般生成路徑和可執(zhí)行程序是同一個(gè)路徑。
但是,我嘗試在 ubuntu 20.04 系統(tǒng)下,沒有生成 core 文件。
因此,需要查看 core 文件的生成路徑。
1.查看coredump文件生成路徑
查看 coredump 文件生成路徑的方法:輸入 cat /proc/sys/kernel/core_pattern 命令。
如下所示:
wangtian@wangtian-virtual-machine:~$ cat /proc/sys/kernel/core_pattern /home/wangtian/coredump_file/core.%e-%p-%s
于是,我進(jìn)入上述的目錄下,并沒有找到 coredump 文件。
網(wǎng)上有網(wǎng)友博文中提到,說這是因?yàn)?ubuntu 系統(tǒng)默認(rèn)情況下,開啟了一種服務(wù)程序 apport.service。
自動生成崩潰報(bào)告,官方為了自動收集錯誤的。
2.更改coredump文件路徑
這時(shí),可以通過更改文件路徑的方法試試。
首先,創(chuàng)建一個(gè)文件路徑,我這里在 /home/wangtian/ 目錄下創(chuàng)建了文件夾 coredump_file。
其次,輸入 echo '/home/wangtian/coredump_file/core.%e-%p-%s' > /proc/sys/kernel/core_pattern 命令即可 更改 coredump 文件生成路徑(注意:這種更改為臨時(shí)更改方法)。
操作如下:
可以看出,更改路徑報(bào)出權(quán)限不夠。
這里因?yàn)槲覀冃薷牡?strong> core_pattern 文件是只讀文件,這樣修改文件路徑操作失敗。
3.關(guān)閉 apport.service服務(wù)
那么,我們換一種思路,即關(guān)閉 apport.service 服務(wù)(這個(gè)服務(wù)其實(shí)對我們來說,沒有很重要的作用)。
可以通過以下命令打開或關(guān)閉該服務(wù):
//啟用錯誤報(bào)告 sudo systemctl enable apport.service //或 sudo service apport start //關(guān)閉錯誤報(bào)告 sudo systemctl disable apport.service //或 sudo service apport stop
我在ubuntu系統(tǒng)下,輸入 sudo systemctl disable apport.service 命令無法關(guān)閉服務(wù)。
可以輸入第二條命令 sudo service apport stop 命令來關(guān)閉 apport.service 服務(wù),
操作如下:
接下來以有一段測試代碼為例
代碼如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { char buffer[3] = {0}; printf("---main()\n"); memcpy(buffer, "hello,world!", 12); printf("---buffer: %s\n", buffer); return 0; }
運(yùn)行程序(注意,程序編譯時(shí),必須加 -g 編譯選項(xiàng))
如下:
可以看到,在可執(zhí)行程序的目錄下,同時(shí),生成了 core 文件。
接下來可以通過對這個(gè)文件進(jìn)行分析來定位 bug 了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下PhpMyAdmin程序目錄結(jié)構(gòu)的安全管理
Linux下開發(fā)Web程序,現(xiàn)在很流行的開發(fā)方法為:用PHP開發(fā)Web程序,用Apache做Web Server,Mysql充當(dāng)后臺管理數(shù)據(jù)庫。2011-04-04Linux多路轉(zhuǎn)接之select函數(shù)使用方式
這篇文章主要介紹了Linux多路轉(zhuǎn)接之select函數(shù)使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08centos7 PHP環(huán)境搭建 GD庫 等插件安裝方法
下面小編就為大家分享一篇centos7 PHP環(huán)境搭建 GD庫 等插件安裝方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03