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):
| 變量 | |
|---|---|
| %% | %字符 |
| %p | 進程ID(PID) |
| %u | 用戶ID(UID) |
| %g | 用戶組ID |
| %s | 觸發 Core Dump 的信號 |
| %t | 觸發 Core Dump 的時間(單位為秒,從 1970-01-01 00:00:00 開始計算) |
| %h | 主機名稱(主機名可以通過uname命令來查看) |
| %e | 程序名稱(無路徑信息) |
| %E | 程序的路徑名稱(路徑中的/會被!替代) |
| %c | Core文件的限制大小值(Linux 2.6.24版本后開始支持) |
4 如何使用 Core Dump
有了 Core Dump 文件后,可以使用GDB來加載分析,執行如下命令(假設可執行程序名稱及路徑為/home/hutaow/test_dump,生成的Core文件名為core):
新聞熱點
疑難解答