什麼是Core Dump?

來源:互聯網
上載者:User

 

什麼是Core Dump?
 
 
今天調試一個程式, 用到了core dump, 於是寫出來, 記於此.
什麼是Core Dump?
Core的意思是記憶體, Dump的意思是扔出來, 堆出來.
開發和使用Unix程式時, 有時程式莫名其妙的down了, 卻沒有任何的提示(有時候會提示core dumped). 這時候可以查看一下有沒有形如core.進程號的檔案產生, 這個檔案便是作業系統把程式down掉時的記憶體內容扔出來產生的, 它可以做為偵錯工具的參考.
core dump又叫核心轉儲, 當程式運行過程中發生異常, 程式異常退出時, 由作業系統把程式當前的記憶體狀況儲存在一個core檔案中, 叫core dump.

如何使用core檔案?
gdb -c core檔案路徑 [應用程式的路徑]
進去後輸入where斷行符號, 就可以顯示程式在哪一行當掉的, 在哪個函數中.

為什麼沒有core檔案產生呢?
有時候程式down了, 但是core檔案卻沒有產生. core檔案的產生跟你當前系統的環境設定有關係, 可以用下面的語句設定一下, 然後再運行程式便成產生core檔案.
ulimit -c unlimited
core檔案產生的位置一般於運行程式的路徑相同, 檔案名稱一般為core.進程號

4. 用gdb查看core檔案:
下面我們可以在發生運行時訊號引起的錯誤時發生core dump了.
發生core dump之後, 用gdb進行查看core檔案的內容, 以定位檔案中引發core dump的行.
gdb [exec file] [core file]
如:
gdb ./test test.core
在進入gdb後, 用bt命令查看backtrace以檢查發生程式運行到哪裡, 來定位core dump的檔案->行.

引用:http://blog.chinaunix.net/u/16292/showart_1844400.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.