core是core dump檔案,是linux伺服器的一種機制。core是個程式的嚴重問題,會致使程式直接掛掉,需要恢復。
core檔案產生原因很多,有主動core 請求的,也有是程式的非法操作導致os傳送sigsegv相關的訊號。
主動core的方法:
1)程式在執行中,需要檢視裡面的程序或者執行緒的運**況,主動生成core。
先gdb attach 程序號
再使用generatercore命令產生core
2)發出kill 命令
被動core:
這個是由於程式的非法操作,比如非法寫記憶體,非法讀等觸發os的保護程式,由os發出相關訊號給程式,導致程式core掉。
1)修改/proc/sys/kernel/core_pattern檔案,
此檔案用於控制core檔案產生的檔名,預設情況下,此檔案內容只有一行內容:「core」,此檔案支援定製,一般使用%配合不同的字元,這裡羅列幾種:
%p 出core程序的pid%u 出core程序的uid%s 造成core的signal號%t 出core的時間,從1970-01-0100:00:00開始的秒數%e 出core程序對應的可執行檔名2)ulimit -c 此命令可以顯示當前os對於core檔案大小的限制,如果為0,則表示不允許產生core檔案。如果想進行修改,可以使用ulimit -c n n表示core檔案大小限制
ulimit -c unlimited 不限制大小
core檔案相當有用, core檔案相當於是儲存程式出錯誤的現場給程式設計師進行除錯,找問題。它會儲存程式的呼叫堆疊資訊,記憶體資訊及cpu使用的資訊等。
使用gdb除錯:
gdb 程式 core
使用bt檢視堆疊
使用info threads檢視執行緒資訊
thread n跳到對應的執行緒裡面去,進行除錯
f n 跳到相應的堆疊裡面去
p 列印變數
Linux Coredump 配置生成例項
coredump是linux程式執行時的記憶體映象,當程式發生異常 獲儲存,用於程式除錯分析。為程式儲存coredump 又稱core 檔案需要系統配置支援。ulimit c 0 ulimit c unlimited ulimit c 1024 0表示不生成檔案。可以通過 ulimit c 設定乙個...
Linux core dump的除錯技術(1)
有的程式可以通過編譯,但在執行時會出現segment fault 段錯誤 這通常都是指標錯誤引起的.以下是我們詳細的對linux core dump的除錯技術進行的介紹,想能幫助大家 1.linux core dump 前言 有的程式可以通過編譯,但在執行時會出現segment fault 段錯誤 ...
Linux core dump檔案介紹及除錯
1.core檔案的簡單介紹 在乙個程式崩潰時,它一般會在程式的當前目錄下生成乙個core檔案。core檔案僅僅是乙個記憶體映象 同時加上除錯資訊 主要是用來除錯的。2.開啟或關閉core檔案的生成 以下命令可以檢查生成core檔案的選項是否開啟 ulimit a 該命令將顯示所有的使用者定製,其中選...