欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux下coredump的配置方法以及流程

 更新時間:2023年09月04日 09:03:59   作者:凌肖戰(zhàn)  
這篇文章主要介紹了Linux下coredump的配置方法以及流程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一. coredump 機(jī)制簡介

coredump 機(jī)制是在 Linux 系統(tǒng)中提供的一種調(diào)試機(jī)制。

Linux coredump 功能 是當(dāng) Linux 系統(tǒng)下應(yīng)用程序異常時,Linux 內(nèi)核默認(rèn)的一種異常信號處理機(jī)制,內(nèi)核會把異常信息與進(jìn)程內(nèi)存轉(zhuǎn)儲成 coredump 文件。

軟件開發(fā)人員可以通過對該 coredump 文件進(jìn)行離線調(diào)試,定位代碼中出現(xiàn)的問題。

常出現(xiàn)這類的問題是低級 bug 中的內(nèi)存訪問越界、使用空指針、堆棧溢出等情況。

使程序運(yùn)行過程中異常退出或者終止,滿足這些條件就會產(chǎn)生 coredump 的文件。

coredump 文件分析方法是一種離線調(diào)試方法。

二. Linux下 coredump 的配置方法

這里為了方便起見,以 ubuntu 系統(tǒng)為例,介紹  ubuntu 系統(tǒng)下 coredump 功能的配置流程。

流程如下:

1. 開啟 coredump 功能

開啟 coredump 功能分臨時開啟與永久開啟。

這里使用永久開啟的方式:

更改 /etc/security/limits.conf 文件中的內(nèi)容。

操作如下:

去掉 soft core 0 一行前面的注釋 ,同時,將 0 改為 unlimited 某個數(shù)值(如 204800)。

更改 limits.conf 文件中內(nèi)容,

如下所示:

*               soft     core   204800

驗(yàn)證是否開啟:終端輸入 ulimit -c 命令,可以查看是否已經(jīng)開啟。

  • 0:表示未開啟。
  • 204800:表示已經(jīng)開啟。coredump 文件大小為 204800,單位為 blocks。

2. 關(guān)閉 ubuntu 系統(tǒng)下的 apport.service 服務(wù)程序

Linux 終端輸入 sudo service apport stop 命令可以關(guān)閉 apport.service 服務(wù)程序。

注意:

ubuntu 系統(tǒng)下 apport.service 服務(wù)程序,是自動生成崩潰報告,官方為了自動收集錯誤的功能。

3. 更改生成的 coredump 文件的路徑

更改方式分臨時更改與永久更改方式。這里使用臨時更改方式。

操作如下:

首先,創(chuàng)建一個文件夾。我這里在 /home/wangtian/ 創(chuàng)建了 coredump_file 文件夾。

其次,切換到 root 權(quán)限。終端輸入 sudo -s 命令。

最后,更改 coredump 文件生成路徑。

終端輸入如下命令:

echo '/home/wangtian/coredump_file/%t-%e-%p-%c.core' > /proc/sys/kernel/core_pattern

4. 運(yùn)行可執(zhí)行程序

當(dāng)程序運(yùn)行崩潰時,會在自定義文件夾下生成 coredump 文件。

首先,編譯代碼。編譯時需要加 -g 編譯選項(xiàng),旨在生成帶調(diào)試信息的可執(zhí)行程序。

其次,運(yùn)行程序。該代碼在運(yùn)行崩潰時,會在所設(shè)置的文件夾目錄下生成 coredump 文件。

注意:

這里要生成 coredump 文件,則代碼中是存在內(nèi)存訪問越界或空指針使用等等的一些問題,導(dǎo)致程序運(yùn)行時會崩潰的現(xiàn)象。

總結(jié)

上述配置 生成coredump 文件的方法,已操作驗(yàn)證。

好了,以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論