Linux Core Dump 是一種在程序崩潰時(shí)生成的包含程序運(yùn)行時(shí)內(nèi)存信息的文件,它可以幫助開發(fā)者定位問題和修復(fù) bug
開啟 Core Dump:
在 Linux 系統(tǒng)中,默認(rèn)情況下是關(guān)閉 Core Dump 的。你可以通過以下命令開啟 Core Dump:
ulimit -c unlimited
這將允許生成無限制大小的 Core Dump 文件。你還可以設(shè)置一個(gè)具體的大小限制,例如:
ulimit -c 1024
這將限制 Core Dump 文件的大小為 1024KB。
配置 Core Dump 文件的存儲(chǔ)路徑和文件名:
你可以通過修改 /proc/sys/kernel/core_pattern
文件來配置 Core Dump 文件的存儲(chǔ)路徑和文件名。例如:
echo "/var/crash/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
這將使 Core Dump 文件存儲(chǔ)在 /var/crash
目錄下,并使用 core-<executable>-<pid>-<timestamp>
的格式命名。
監(jiān)控 Core Dump 文件:
你可以使用 inotify
工具來監(jiān)控 Core Dump 文件的生成。首先,安裝 inotify-tools
:
sudo apt-get install inotify-tools
然后,創(chuàng)建一個(gè)腳本(例如 monitor_coredump.sh
)來監(jiān)控 Core Dump 文件的生成,并在生成時(shí)發(fā)送報(bào)警:
#!/bin/bash
inotifywait -m -r -e create --format '%w%f' /var/crash | while read FILE
do
echo "Core Dump generated: $FILE"
# 在這里添加你的報(bào)警邏輯,例如發(fā)送郵件或者短信
done
給腳本添加可執(zhí)行權(quán)限:
chmod +x monitor_coredump.sh
最后,運(yùn)行腳本:
./monitor_coredump.sh
分析 Core Dump 文件:
當(dāng) Core Dump 文件生成后,你可以使用 gdb
工具來分析文件,以獲取更多關(guān)于程序崩潰的信息。例如:
gdb <executable> <core-dump-file>
在 gdb
中,你可以使用 bt
命令查看崩潰時(shí)的調(diào)用棧,以幫助定位問題。
通過以上步驟,你可以實(shí)現(xiàn)對(duì) Linux 系統(tǒng)上的 Core Dump 文件的監(jiān)控和報(bào)警。當(dāng)有新的 Core Dump 文件生成時(shí),你將收到相應(yīng)的報(bào)警。