① Linux中生成Core Dump系統異常信息記錄文件的教程
1 什麼是 Core Dump
Core Dump 又叫核心轉儲。在程序運行過程中發生異常時,將其內存數據保存到文件中,這個過程叫做 Core Dump。
2 Core Dump 的作用
在開發過程中,難免會遇到程序運行過程中異常退出的情況,這時候想要定位哪裡出了問題,僅僅依靠程序自身的信息列印(日誌記錄)往往是不夠的,這個時候就需要 Core Dump 文件來幫忙了。
一個完整的 Core Dump 文件實際上相當於恢復了異常現場,利用 Core Dump 文件,可以查看到程序異常時的所有信息,變數值、棧信息、內存數據,程序異常時的運行位置(甚至記錄代碼行號)等等,定位所需要的一切信息都可以從 Core Dump文件獲取到,能夠非常有效的提高定位效率。
3 如何生成 Core Dump
3.1 Core Dump 文件生成開關
Core Dump 文件的生成是由Core文件大小限制,Linux中默認的Core文件大小設置為零,也就是不生成 Core Dump 文件,可以使用ulimit -c命令來查看當前的Core文件大小限制。
要生成 Core Dump 文件,只需要執行下面的命令設置Core文件的大小即可(其中filesize參數的單位為KByte):
復制代碼
代碼如下:
ulimit -c filesize如果要設置Core文件大小無限制(即把程序完整的運行內存都保存下來),則執行如下命令:
復制代碼
代碼如下:
ulimit -c unlimited3.2 Core Dump 文件名設置
Core Dump 文件默認的名字為core,而且新的Core文件會把老的覆蓋,這樣我們只能看到最後一次的 Core Dump 信息,可以通過設置Core文件名稱模板,使每次生成的 Core Dump 文件區分開來。
Core Dump 文件的命名規則定義在/proc/sys/kernel/core_pattern文件中,規則中還可以加入預設的變數來更好的區分Core文件,支持的變數列表如下:
註:Core Dump 文件名的最大長度為128位元組(在 Linux 2.6.19 版本前,最大長度為64位元組)。
例如:可以通過下面的命令,生成文件名為core-程序名稱-進程ID-時間的 Core Dump 文件:
echo core-%e-%p-%t /proc/sys/kernel/core_pattern
從 Linux 2.4 版本開始,提供了一種比較原始的Core文件名設置方式,直接設置/proc/sys/kernel/core_uses_pid文件中的值為1,生成的Core文件名中便會自動加上.PID後綴,即生成的文件名為core.PID這種形式。執行下面的命令可以設置該值:
復制代碼
代碼如下:
echo "1" /proc/sys/kernel/core_uses_pid4 如何使用 Core Dump
有了 Core Dump 文件後,可以使用GDB來載入分析,執行如下命令(假設可執行程序名稱及路徑為/home/hutaow/test_mp,生成的Core文件名為core):
復制代碼
代碼如下:
gdb /home/hutaow/test_mp -c core載入完成後,即可以在GDB中查看程序異常時的各種運行信息了(查看變數值、線程信息、調用棧、反匯編等等)。
② 如何在centos7的文件夾中創建文件
1、首先我們進入centos7桌面。
注意事項:
CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對於其他 Linux 發行版,其穩定性值得信賴。