linux下產生斷錯誤的除錯方法

2021-08-14 08:11:35 字數 990 閱讀 7483

1.

編譯**時,需要加上

-g2.

開發板上執行

# ulimit -c unlimited  -

此處是設定生成的

core

檔案大小

在開發板上執行時,如果有斷錯誤會有

segmentation fault

(core dumped)

, 紅色標記生成了

core

檔案。如果沒有生成

core

檔案一般是沒有設定

core

檔案大小

3. 將可執行程式

sea,

和生成的

sea.***core

檔案拷到交叉編譯伺服器(如

192.168.189.109

)上 .

4. 在伺服器上用交叉編譯器自帶的

gdb進行出錯位置的定位( 1

)將 openwrt

的工具鏈加到

path

中,下面是紅色

/yourpath

是我存放

openwrt-3.10.14

的路徑,需要替換成你自己的編譯路徑

#export path=$path:

/yourpath/

openwrt-3.10.14/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uclibc-0.9.33.2/bin#

mipsel-openwrt-linux-uclibc-gdb  sea sea.946.11.1450080706.core

使用 bt

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

Linux下 錯誤除錯

1.訪問不存在的記憶體位址或系統保護的記憶體位址 如在函式呼叫中,本來應將位址傳給指標引數,卻誤將值傳入,再如寫scanf函式時,忘記 位址符號 2.訪問唯讀的記憶體位址 3.棧溢位,如遞迴程式,沒有退出條件,無限遞迴導致棧溢位 gdb除錯時發生錯誤 沒有符號表被讀取,請使用 file 命令,分析 ...

在Linux下產生並除錯core檔案

在linux下產生並除錯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 ...

在Linux下產生並除錯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 ...