gdb可以用於分析core檔案

2021-07-30 13:49:25 字數 1103 閱讀 4866

gdb可以用於分析

core

檔案。產生core的原因一般是

1.記憶體訪問越界,錯誤的陣列下標,字串越界,

2。多執行緒下使用執行緒不安全的函式

3.多執行緒共享資料不加鎖保護。

4.非法指標。

5堆疊溢位。特別是不能使用過大的區域性變數,容易早成棧溢位。

root@ubuntu:~# ulimit -c 0

可以檢視限制生成core

檔案的大小,

0表示不生成

core

檔案root@ubuntu:~# ulimit -c unlimited

root@ubuntu:~# ulimit -c

unlimited

ulimit -c unlimited

不限制生成的core

檔案的大小

限制512

個位元組root@ubuntu:~# ulimit -c 512

root@ubuntu:~# ulimit -c

512

注意:當前設定的ulimit只對當前會話有效,如想在系統均有效,則在/etc/profile中加入ulimit -c unlimited

有如下問題原始碼

test.c

#include int main()

gcc test.c -g

生成了a.out可執行檔案

使用gdb執行並生成core檔案,bt打出棧資訊。

core檔案需要使用gdb來檢視。

gdb ./a.out

core-file core.***x

使用bt命令即可看到程式出錯的地方。 

以下兩種命令方式具有相同的效果,但是在有些環境下不生效,所以推薦使用上面的命令。 

(1)gdb -core=core.***x

file ./a.out

bt (2)gdb -c core.***x

file ./a.out

bt

gdb 分析core檔案 小記

測試環境twemproxy程序突然出core退出,記錄一下gdb分析過程 解析 coredump檔案 bt 列印crash時的堆疊 gdb root proxy bin twemproxy tmp cordump.file gdb bt 0 0x00007f9f3b0d4337 in ssignal...

用gdb工具分析core檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的,本文對此做簡單介紹。例如,乙個程式cmm test tool在執行的時候發生了錯誤,並生成了乙個core檔案,如下 rw r r 1 root cmm test tool....

用gdb工具分析core檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的,本文對此做簡單介紹。例如,乙個程式cmm test tool在執行的時候發生了錯誤,並生成了乙個core檔案,如下 rw r r 1 root cmm test tool....