core dump的認識和使用指南

2021-09-24 05:45:31 字數 1484 閱讀 1859

$ 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 設定硬體資源限制.

-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

希望關於core dump的一些總結能幫到你。

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...