如何使用crash工具分析Linux內核崩潰轉儲文?
由于 crash 用于調試內核崩潰的轉儲文件,因此使用 crash 需要依賴如下條件:
1. kernel 映像文件 vmlinux 在編譯的時候必須指定了 -g 參數,即帶有調試信息。
2. 需要有一個內存崩潰轉儲文件(例如 vmcore),或者可以通過 /dev/mem 或 /dev/crash 訪問的實時系統內存。如果 crash 命令行沒有指定轉儲文件,則 crash 默認使用實時系統內存,這時需要 root 權限。
3. crash 支持的平臺處理器包括:x86, x86_64, ia64, ppc64, arm, s390, s390x ( 也有部分 crash 版本支持 Alpha 和 32-bit PowerPC,但是對于這兩種平臺的支持不保證長期維護 )。4. crash 支持 2.2.5-15(含)以后的 Linux 內核版本。隨著 Linux 內核的更新,crash 也在不斷升級以適應新的內核。啟動參數說明使用 crash 調試轉儲文件,需要在命令行輸入兩個參數:debug kernel 和 dump file,其中 dump file 是內核轉儲文件的名稱,debug kernel 是由內核調試信息包安裝的,不同的發行版名稱略有不同,以 RHEL 和 SLES 為例: RHEL6.2:/usr/lib/debug/lib/modules/2.6.32-220.el6.ppc64/vmlinux SLES11SP2:/usr/lib/debug/boot/vmlinux-3.0.13-0.27-ppc64.debug 使用 crash -h 或 man crash 可以查看 crash 支持的一系列選項,這里僅以常用的選項為例說明如下:-h:打印幫助信息-d:設置調試級別-S:使用 /boot/System.map 作為默認的映射文件-s:不顯示版本、初始調試信息等,直接進入命令行-i file:啟動之后自動運行 file 中的命令,再接受用戶輸入