Linux Core Dump 是一個包含程序運行時內存信息的文件,當程序崩潰時生成
確認 Core Dump 是否已生成:
通常情況下,Core Dump 文件會在程序崩潰時生成在當前工作目錄或者系統默認的目錄(如 /var/lib/systemd/coredump/)。你可以使用 ls
命令查看當前目錄下是否有 core 文件。如果沒有,請檢查系統配置是否允許生成 Core Dump。
開啟 Core Dump:
如果系統禁止了 Core Dump 生成,你需要修改 /proc/sys/kernel/core_pattern
文件來設置允許生成 Core Dump。例如,你可以使用以下命令將 Core Dump 文件生成在當前工作目錄:
echo 'core' | sudo tee /proc/sys/kernel/core_pattern
設置 Core Dump 文件大小限制:
使用 ulimit -c
命令設置 Core Dump 文件大小限制。例如,設置 Core Dump 文件大小限制為無限制,可以使用以下命令:
ulimit -c unlimited
使用 gdb 分析 Core Dump: gdb(GNU Debugger)是一個功能強大的調試工具,可以用來分析 Core Dump 文件。首先安裝 gdb(如果尚未安裝):
sudo apt-get install gdb
然后,使用 gdb 打開 Core Dump 文件并進行調試:
gdb <程序名> <core文件名>
接下來,你可以在 gdb 中使用各種命令來查看堆棧跟蹤、變量值等信息,以幫助定位問題。
分析 gdb 輸出: 在 gdb 中,你可以使用以下命令來查看更多信息:
bt
:顯示當前線程的堆棧跟蹤。thread apply all bt
:顯示所有線程的堆棧跟蹤。info threads
:顯示當前程序的所有線程。frame<frame號>
:選擇指定幀并顯示相關信息。list <函數名>
:顯示指定函數的源代碼。print <變量名>
:顯示指定變量的值。通過以上步驟,你可以分析 Linux Core Dump 文件,找到程序崩潰的原因并修復問題。