SA299學習筆記 第五章 管理crash dumps 和core files(4)
同樣,可以透過檢視檔案/etc/coreadm.conf來檢視coreadm命令裡面的引數
# cat /etc/coreadm.conf
# cat /etc/coreadm.conf # # coreadm.conf # # Parameters for system core file configuration. # Do NOT edit this file by hand -- use coreadm(1) instead. # COREADM_GLOB_PATTERN= COREADM_GLOB_CONTENT=default COREADM_INIT_PATTERN=core COREADM_INIT_CONTENT=default COREADM_GLOB_ENABLED=no COREADM_PROC_ENABLED=yes COREADM_GLOB_SETID_ENABLED=no COREADM_PROC_SETID_ENABLED=no COREADM_GLOB_LOG_ENABLED=no # |
使用coreadm命令p選項的一些引數:
%u:EUID;%g:EGID;%f:可執行檔名;%n:系統標示名;%m:機器硬體名;%t:自1970.1開始執行的秒數
使用coreadm命令的一些例項:
# coreadm -p core.%f.%p $$
# coreadm -p $HOME/corefiles/%n.%f.%p $$
# coreadm -g /var/core/core.%f.%P -e global
# coreadm 278 5678
幾個相關的概念問題:
何謂 core? 在使用半導體作為記憶體的材料前,人類是利用線圈當作記憶體的材料(發明 者為王安),線圈就叫作 core ,用線圈做的記憶體就叫作 core memory。如今 ,半導體工業澎勃發展,已經沒有人用 core memory 了,不過,在許多情況下, 人們還是把記憶體叫作 core 。 何謂 core dump? 我們在開發(或使用)一個程式時,最怕的就是程式莫明其妙地當掉。雖然系 統沒事,但我們下次仍可能遇到相同的問題。於是這時作業系統就會把程式當掉 時的記憶體內容 dump 出來(現在通常是寫在一個叫 core 的 file 裡面),讓 我們或是 debugger 做為參考。這個動作就叫作 core dump。 為何會發生 core dump? 前面說過,在程式當掉時出錯。在 C/C++語言中,最常發生錯誤的地方就是指 針有問題。您可以利用 core 檔案和 debugger 把錯誤找出來(要怎麼在 debugger 中使用 core 檔案?man 一下 gdb 吧!)。 我可以把 core 檔案刪掉嗎? 如果你不會、不能、不需要修改程式,那就放心地把它刪除了吧! 要怎麼才不會讓 core 檔案出現? 如果用的是tcsh的話, 以試著在 .tcshrc 里加一行: limit coredumpsize 0 如果用的是bash的話, 在/etc/profile里加上(或者修改)一條: ulimit -c 0 有一招, 可以讓你看出 core 最好用的地方 :) gdb -c core, 進去後打 where, 就可以 show 出你是在程式哪一行當掉的, 還有在當掉時在哪個 function 裡, 這個 function 是被哪個 function 所 call 的, 而這個 function 又是被哪個 function 所 call 的.... 一直到 main() 由這個資訊, 可以找出五六成的 bug........ 屢試不爽 但, 先決條件, 當你在 compile 時必須把 debug information 的選項開啟 不然, 就會出現一大堆你看不懂的東西,而不是你喜歡的源程式。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/222350/viewspace-925965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SA299學習筆記 第五章 管理crash dumps 和core files(1)筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(2)筆記
- SA299學習筆記 第五章 管理crash dumps 和core files(3)筆記
- SA299學習筆記 第四章 管理交換配置(4)筆記
- SA299學習筆記 第六章 配置NFS(4)筆記NFS
- SA299學習筆記 第一章 描述介面配置(4)筆記
- SA299學習筆記 第四章 管理交換配置(1)筆記
- SA299學習筆記 第四章 管理交換配置(2)筆記
- SA299學習筆記 第四章 管理交換配置(3)筆記
- Object C學習筆記4-記憶體管理Object筆記記憶體
- GoldenGate學習筆記(4)_程式配置與管理Go筆記
- 《學習筆記》.NET Core API搭建筆記API
- NET Core-學習筆記(二)筆記
- NET Core-學習筆記(一)筆記
- NET Core-學習筆記(三)筆記
- NET Core-學習筆記(四)筆記
- swift學習筆記《4》Swift筆記
- Rails 4 學習筆記AI筆記
- CCNA學習筆記4筆記
- vue學習筆記4Vue筆記
- Java學習筆記4Java筆記
- 磁碟管理--學習筆記筆記
- NET Core 1.0-學習筆記(一)筆記
- SA299學習筆記 第二章描述CS模式(1)筆記模式
- SA299學習筆記 第二章 描述CS模式(2)筆記模式
- SA299學習筆記 第六章 配置NFS(1)筆記NFS
- SA299學習筆記 第六章 配置NFS(2)筆記NFS
- SA299學習筆記 第六章 配置NFS(3)筆記NFS
- SA299學習筆記 第六章 配置NFS(5)筆記NFS
- SA299學習筆記 第六章 配置NFS(6)筆記NFS
- python學習筆記4Python筆記
- Webpack4學習筆記Web筆記
- p4 學習筆記筆記
- QT學習筆記4(動畫)QT筆記動畫
- Android學習筆記(4)Android筆記
- 【Go學習筆記4】切片Go筆記
- PL/SQL學習筆記-4SQL筆記
- ruby字串學習筆記4字串筆記