今天調試一個程序, 用到了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.進程號