應用程式和核心 core dump

2021-06-07 03:56:35 字數 968 閱讀 1962

應用程式core dump

core dump, memory dump, storage dump 三者表達同一意思記憶體轉存。什麼情況發生轉存?那些記憶體?轉存到**?記憶體轉存作用是什麼?如何使用呢?

1)什麼情況發生轉存?

當程式異常崩潰時,另外系統開啟對core檔案大小資源控制。

系統預設core檔案大小查詢:

#ulimit -c

0設定core檔案大小:

#ulimit -s unlimited

這樣保證程式異常崩潰時,產生core檔案

2)那些記憶體?

程式崩潰瞬間該程序記憶體快照,實際也包括處理器暫存器資訊

3)轉存到**?

檢視當前預設配置:

cat /proc/sys/kernel/core_pattern

core

上述的配置把記憶體轉存資訊將放在當前目錄,檔名為:"core.程序pid"。

修改轉存存放位置和檔名命名

echo "/mycore/core-%p-%t" >/proc/sys/kernel/core_pattern

上述的配置把記憶體轉存資訊將放在/mycore目錄下(當然保證目錄存在),檔名為:"core-程序pid-時間資訊"。

4)記憶體轉存作用?

記憶體轉存主要用作程式異常崩潰時除錯用途。

5)如何使用?

gdb -c core檔案 [應用程式]

gdb [應用程式] core檔案

然後輸入bt或where命令,將顯示函式名,檔名,行號,定位到崩潰位置。

(gdb) bt

#0  0x0000000000400480 in main () at aa.c:5

(gdb) where

核心core dump---(vmcore)

與應用程式類似,同樣存在上述五個問題:

什麼情況發生轉存?那些記憶體?轉存到**?記憶體轉存作用是什麼?如何使用呢?

核心模組和應用程式的對比

應用程式是從頭到尾執行單個任務 模組卻只是預先呼叫初始化函式註冊自己,然後等待以後被呼叫,最後使用exit函式解除安裝自己,從而退出核心。模組僅僅被鏈結到核心,所以它能呼叫的函式僅僅是由核心到處的那些函式。printk就是乙個核心中功能相當於printf的函式,但是printk缺乏對浮點數的支援。使...

ios應用程式和應用程式委託

其實說白了,就是乙個類將自己不願意實現的方法以協議的方式定義,同時在這個類中包含有乙個型別為id 泛型類 的例項變數,如果另乙個類實現了這個協議,那麼另外的這個類就可以作為第乙個類的委託物件,前乙個類將自己不願意實現的類委託給後乙個類。因為第乙個類擁有第二個類的引用,所有第乙個類的例項可以直接呼叫第...

python啟動應用程式和終止應用程式

每天上班,工作需要,電腦上需要每天開機啟動一些軟體,下班時候,需要關掉一些軟體。乙個乙個開啟和關閉貌似是很繁瑣的,於是乎,這個指令碼產生了。系統環境 win7 32位 python 2.7.9 你還需要安裝pywin32。pip install pywin32 啟動應用程式指令碼 coding ut...