溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下如何使用coredumpctl工具處理BUG

發(fā)布時(shí)間:2022-01-26 11:06:51 來源:億速云 閱讀:425 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Linux下如何使用coredumpctl工具處理BUG,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一個(gè)不幸的事實(shí)是,所有的軟件都有 bug,一些 bug 會(huì)導(dǎo)致系統(tǒng)崩潰。當(dāng)它出現(xiàn)的時(shí)候,它經(jīng)常會(huì)在磁盤上留下一個(gè)被稱為“核心轉(zhuǎn)儲(chǔ)”的數(shù)據(jù)文件。該文件包含有關(guān)系統(tǒng)崩潰時(shí)的相關(guān)數(shù)據(jù),可能有助于確定發(fā)生崩潰的原因。通常開發(fā)者要求提供 “回溯” 形式的數(shù)據(jù),以顯示導(dǎo)致崩潰的指令流。開發(fā)人員可以使用它來修復(fù) bug 以改進(jìn)系統(tǒng)。如果系統(tǒng)發(fā)生了崩潰,以下是如何輕松生成回溯的方法。

Linux下如何使用coredumpctl工具處理BUG

從使用 coredumpctl 開始

大多數(shù) Fedora 系統(tǒng)使用自動(dòng)錯(cuò)誤報(bào)告工具(ABRT)[1]來自動(dòng)捕獲崩潰文件并記錄 bug。但是,如果你禁用了此服務(wù)或刪除了該軟件包,則此方法可能會(huì)有所幫助。

如果你遇到系統(tǒng)崩潰,請(qǐng)首先確保你運(yùn)行的是最新的軟件。更新通常包含修復(fù)程序,這些更新通常含有已經(jīng)發(fā)現(xiàn)的會(huì)導(dǎo)致嚴(yán)重錯(cuò)誤和崩潰的錯(cuò)誤的修復(fù)。當(dāng)你更新后,請(qǐng)嘗試重現(xiàn)導(dǎo)致錯(cuò)誤的情況。

如果崩潰仍然發(fā)生,或者你已經(jīng)在運(yùn)行最新的軟件,那么可以使用有用的 coredumpctl 工具。此程序可幫助查找和處理崩潰。要查看系統(tǒng)上所有核心轉(zhuǎn)儲(chǔ)列表,請(qǐng)運(yùn)行以下命令:

coredumpctl list

如果你看到比預(yù)期長(zhǎng)的列表,請(qǐng)不要感到驚訝。有時(shí)系統(tǒng)組件在后臺(tái)默默地崩潰,并自行恢復(fù)??焖俨檎医裉斓霓D(zhuǎn)儲(chǔ)的簡(jiǎn)單方法是使用 -since 選項(xiàng):

coredumpctl list --since=today

“PID” 列包含用于標(biāo)識(shí)轉(zhuǎn)儲(chǔ)的進(jìn)程 ID。請(qǐng)注意這個(gè)數(shù)字,因?yàn)槟銜?huì)之后再用到它?;蛘?,如果你不想記住它,使用下面的命令將它賦值給一個(gè)變量:

MYPID=

要查看關(guān)于核心轉(zhuǎn)儲(chǔ)的信息,請(qǐng)使用此命令(使用 $MYPID 變量或替換 PID 編號(hào)):

coredumpctl info $MYPID

安裝 debuginfo 包

在核心轉(zhuǎn)儲(chǔ)中的數(shù)據(jù)以及原始代碼中的指令之間調(diào)試符號(hào)轉(zhuǎn)義。這個(gè)符號(hào)數(shù)據(jù)可能相當(dāng)大。與大多數(shù)用戶運(yùn)行在 Fedora 系統(tǒng)上的軟件包不同,符號(hào)以 “debuginfo” 軟件包的形式安裝。要確定你必須安裝哪些 debuginfo 包,請(qǐng)先運(yùn)行以下命令:

coredumpctl gdb $MYPID

這可能會(huì)在屏幕上顯示大量信息。最后一行可能會(huì)告訴你使用 dnf 安裝更多的 debuginfo 軟件包。用 sudo [2]運(yùn)行該命令以安裝:

sudo dnf debuginfo-install

然后再次嘗試 coredumpctl gdb $MYPID 命令。你可能需要重復(fù)執(zhí)行此操作,因?yàn)槠渌?hào)會(huì)在回溯中展開。

捕獲回溯

在調(diào)試器中運(yùn)行以下命令以記錄信息:

set logging file mybacktrace.txtset logging on

你可能會(huì)發(fā)現(xiàn)關(guān)閉分頁有幫助。對(duì)于長(zhǎng)的回溯,這可以節(jié)省時(shí)間。

set pagination off

現(xiàn)在運(yùn)行回溯:

thread apply all bt full

現(xiàn)在你可以輸入 quit 來退出調(diào)試器。mybacktrace.txt 包含可附加到 bug 或問題的追蹤信息?;蛘?,如果你正在與某人實(shí)時(shí)合作,則可以將文本上傳到 pastebin。無論哪種方式,你現(xiàn)在可以向開發(fā)人員提供更多的幫助來解決問題。

以上是“Linux下如何使用coredumpctl工具處理BUG”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI