$ ulimit -c unlimited
當執行時訊號引起錯誤時發生core dump;
發生core dump後,用gdb進行檢視core檔案的內容,就可以定位檔案中引發core dump的行了 ——
$ # gdb [exec file] [core file]
$ gdb .
/test test.core
進入gdb後,可以用bt來檢查程式執行到**。
$ cat /proc/sys/kernel/core_pattern
$ core
$ echo "/corefile/core-%e-%p-%t"
>
/proc/sys/kernel/core_pattern
系統對core檔案的命名均為core,儲存路徑在程序的當前目錄下
設定的core檔案命名規則為"core-命令名-pid-時間戳",儲存路徑為/corefile資料夾下
一些用到的引數列表含義:
%p pid
%u uid
%g gid
%s 到時core檔案產生的訊號
%t core檔案生成時的unix時間
%h 主機名
%e 命令名
$ gdb -c core.pid program_name..
.# 使用where就可以指出哪一行被down掉,哪個函式內,由誰呼叫等等
(gdb) where/bt
$ ulimit [
-acdfhlmnpsstvw]
[size]
ulimit (bash build-in command)
-a 顯示所有設定
-c core 檔案的最大大小
-s 棧的大小
還有一些現在還沒有用到
-h 設定硬體資源限制.希望關於core dump的一些總結能幫到你。-s 設定軟體資源限制.
-a 顯示當前所有的資源限制.
-c size:設定core檔案的最大值.單位:blocks
-d size:設定資料段的最大值.單位:kbytes
-f size:設定建立檔案的最大值.單位:blocks
-l size:設定在記憶體中鎖定程序的最大值.單位:kbytes
-m size:設定可以使用的常駐記憶體的最大值.單位:kbytes
-n size:設定核心可以同時開啟的檔案描述符的最大值.單位:n
-p size:設定管道緩衝區的最大值.單位:kbytes
-s size:設定堆疊的最大值.單位:kbytes
-t size:設定cpu使用時間的最大上限.單位:seconds
-v size:設定虛擬記憶體的最大值.單位:kbytes
coredump的生成方法和使用
1,如何開啟生成coredump檔案 echo ulimit c 1024 etc profile 限制生成core檔案的大小為1024kb 或直接在控制台輸入ulimit c 不限制core檔案的大小 取消限制 ulimit c unlimited 2,檢視是否開啟 ulimit a 檢視 3,修...
System Dump和Core Dump的區別
許多沒有做過unix系統級軟體開發的人士,可能只聽說過dump,而並不知道系統dump和core dump的區別,甚至混為一談。系統dump system dump 所有開放式作業系統,都存在系統dump問題。產生原因 由於系統關鍵 核心程序,產生嚴重的無法恢復的錯誤,為了避免系統相關資源受到更大損...
linux下core dump檔案的使用
core dump是指當程序發生異常而退出執行時,由kernel將程序當前記憶體寫入乙個檔案中的機制。core dump機制在程式開發過程中很重要,通過core檔案可以很有力地追蹤到異常發生點。1.linux在預設情況下是不生成core檔案的,所以在使用core dump之前,必須先通過ulimit...