經常聽到大家說到程式core掉了,需要定位解決,這裡說的大部分是指對應程式由於各種異常或者bug導致在執行過程中異常退出或者中止,並且在滿足一定條件下會產生乙個叫做core的檔案。
要產生coredump檔案,首先需要確認當前會話的ulimit –c,若為0,則不會產生core檔案。
可以這樣設定:ulimit -c unlimited 就可以了。不過這個只是在當前終端有效哈。
這樣,如果程式coredump掉了,就會在程式的執行目錄產生乙個core檔案。
我們可以通過下面命令檢視是否是coredump檔案。
$ file core
裡面就會有core的字段
接下來就可以通過gdb除錯core檔案,分析錯誤的地方了。以aa.c編譯成bb執行檔案,生成了core檔案為例,執行以下:
$ gdb bb core
就能看到出錯的地方了~
關於coredump的那些事
今天在網上搜了一些有關coredump的知識,簡單記一下,以防忘記 core dump檔名的模式儲存在 proc sys kernel core pattern中,預設是core 主要是今天比較鬱悶,要除錯程式crash,就用ulimit c unlimited設定了一下core檔案的大小,但是測試...
GDB 除錯 C 程式 core dump
gdb 的一些常用命令,及在程式發生段錯誤後如何通過除錯 core dump 迅速定位到出錯位置.不羅列一大堆命令了,只是把碰到的 用過的整理一下,以後再使用到新的命令,再補充.有幾篇總結的比較好的文章可以參考 linux c c gdb除錯 概述 上 linux c c gdb除錯 概述 下 手把...
qt程式崩潰生成core dump
二 qt程式 1 qt程式的除錯過程與命令列大同小異,首先編寫崩潰程式如下 void mainwindow on checkbox toggled bool 當勾選checkbox的時候,程式崩潰 2 修改qt程式的makefile,在圖中位置增添 g引數,再進行編譯 2 這裡將程式設定成自啟動,在...