core dump的簡單測試

2021-06-03 10:54:30 字數 460 閱讀 6286

用c++編寫的程式在執行出錯時,系統會生成core dump檔案,如果系統沒有生成可以通過命令

ulimit -c unlimited

使系統生成產生core檔案,這樣就可以利用core檔案檢視程式是在哪一行出現錯誤了,具體的方法如下:

1、程式編譯時要加-g選項,保證debug資訊生成在應用程式當中

2、如果執行過程中出錯,執行下面命令檢視程式**出現錯誤:

gdb a.out core

舉例來說:

#include int main(int argc, char** argv)

上面的程式會執行出錯,用g++ -g編譯後,生成a.out,執行a.out,產生core檔案,當執行gdb a.out core時,gdb會自動停止在出錯的位置。

core dump簡單定位到出錯行

1.生成core檔案 方法 1.使用ulimit c 命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,不會生成core檔案 2.使用ulimit c unlimited 命令,設定core檔案的大小不受限制 2.使用core檔案 方法 1.執行程式出現 segmentation f...

coredump產生的原因

造成程式coredump的原因很多,這裡根據以往的經驗總結一下 1 記憶體訪問越界 a 由於使用錯誤的下標,導致陣列訪問越界 b 搜尋字串時,依靠字串結束符來判斷字串是否結束,但是字串沒有正常的使用結束符 c 使用strcpy,strcat,sprintf,strcmp,strcasecmp等字串操...

System Dump和Core Dump的區別

許多沒有做過unix系統級軟體開發的人士,可能只聽說過dump,而並不知道系統dump和core dump的區別,甚至混為一談。系統dump system dump 所有開放式作業系統,都存在系統dump問題。產生原因 由於系統關鍵 核心程序,產生嚴重的無法恢復的錯誤,為了避免系統相關資源受到更大損...