記錄一次core檔案除錯

2021-07-23 23:38:50 字數 485 閱讀 8893

今天發現伺服器掛了,自己除錯了一下core,只能知道是迴圈解包引起的,卻不知道怎麼看到底是哪個包,以及包的內容。就請教了下阿里雲的同學,他幫我處理了問題。做下筆記:

1.gdb /home/titan2/engine/bin/gateway  進入gdb除錯。

2.core-file core.gateway.3868 載入core

3.這裡是最重要的,通過f 檢視,只能發現各種迴圈巢狀的呼叫,用info args, info locals,都無法看到有用的值。

用p命令檢視變數,只能看到一堆指標位址。這時候,其實還可以檢視類的成員變數。通過看成員變數,其實就能看出一些端倪。

std::vector of length 2563693, capacity 3276800 =

這是乙個無比巨大的vector,通過列印,可以知道changeminehero    z y x normalize z y x normalize

基本就知道了具體位置。

core檔案除錯

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...

linux gdb除錯core檔案

uname a linux dev 2.4.21 9.30axsmp 1 smp wed may 26 23 37 09 edt 2004 i686 i686 i386 gnu linux 再看看預設的一些引數,注意core file size是個0,程式出錯時不會產生core檔案了。ulimit ...

GDB除錯core檔案

1.什麼是core dump?core dump說的是作業系統執行的乙個動作,當某個程序因為一些原因意外終止 crash 的時候,作業系統會將這個程序當時的記憶體資訊轉儲 dump 到磁碟上,產生的檔案就是core檔案了,一般會以core.形式命名。2.那些訊號能夠引起core dump?經常用到的...