您好,登錄后才能下訂單哦!
小編給大家分享一下Linux下如何使用coredumpctl工具處理BUG,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一個不幸的事實是,所有的軟件都有 bug,一些 bug 會導致系統崩潰。當它出現的時候,它經常會在磁盤上留下一個被稱為“核心轉儲”的數據文件。該文件包含有關系統崩潰時的相關數據,可能有助于確定發生崩潰的原因。通常開發者要求提供 “回溯” 形式的數據,以顯示導致崩潰的指令流。開發人員可以使用它來修復 bug 以改進系統。如果系統發生了崩潰,以下是如何輕松生成回溯的方法。
大多數 Fedora 系統使用自動錯誤報告工具(ABRT)[1]來自動捕獲崩潰文件并記錄 bug。但是,如果你禁用了此服務或刪除了該軟件包,則此方法可能會有所幫助。
如果你遇到系統崩潰,請首先確保你運行的是最新的軟件。更新通常包含修復程序,這些更新通常含有已經發現的會導致嚴重錯誤和崩潰的錯誤的修復。當你更新后,請嘗試重現導致錯誤的情況。
如果崩潰仍然發生,或者你已經在運行最新的軟件,那么可以使用有用的 coredumpctl 工具。此程序可幫助查找和處理崩潰。要查看系統上所有核心轉儲列表,請運行以下命令:
coredumpctl list
如果你看到比預期長的列表,請不要感到驚訝。有時系統組件在后臺默默地崩潰,并自行恢復。快速查找今天的轉儲的簡單方法是使用 -since 選項:
coredumpctl list --since=today
“PID” 列包含用于標識轉儲的進程 ID。請注意這個數字,因為你會之后再用到它。或者,如果你不想記住它,使用下面的命令將它賦值給一個變量:
MYPID=
要查看關于核心轉儲的信息,請使用此命令(使用 $MYPID 變量或替換 PID 編號):
coredumpctl info $MYPID
在核心轉儲中的數據以及原始代碼中的指令之間調試符號轉義。這個符號數據可能相當大。與大多數用戶運行在 Fedora 系統上的軟件包不同,符號以 “debuginfo” 軟件包的形式安裝。要確定你必須安裝哪些 debuginfo 包,請先運行以下命令:
coredumpctl gdb $MYPID
這可能會在屏幕上顯示大量信息。最后一行可能會告訴你使用 dnf 安裝更多的 debuginfo 軟件包。用 sudo [2]運行該命令以安裝:
sudo dnf debuginfo-install
然后再次嘗試 coredumpctl gdb $MYPID 命令。你可能需要重復執行此操作,因為其他符號會在回溯中展開。
在調試器中運行以下命令以記錄信息:
set logging file mybacktrace.txtset logging on
你可能會發現關閉分頁有幫助。對于長的回溯,這可以節省時間。
set pagination off
現在運行回溯:
thread apply all bt full
現在你可以輸入 quit 來退出調試器。mybacktrace.txt 包含可附加到 bug 或問題的追蹤信息。或者,如果你正在與某人實時合作,則可以將文本上傳到 pastebin。無論哪種方式,你現在可以向開發人員提供更多的幫助來解決問題。
以上是“Linux下如何使用coredumpctl工具處理BUG”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。