應用程式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...