2解壓:
xd -d gdb-8.2.tar.xz
tar xvf gdb-8.2.tar.gz
3新建build資料夾:
mkdir build
4配置:
cd build
…/gdb-8.2/configure --prefix=/opt/gdb
–prefix=/opt/gdb表示在make install的時候,將檔案安裝/opt/gdb路徑
5 make
make
5.1故障解決
在 make 的過程中,出現了乙個錯誤: makeinfo is missing on your system
解決方法是:安裝 texinfo
sudo apt-get install texinfo
6 make install
會將編譯成功的gdb檔案安裝到/opt/gdb目錄下
1 陣列越界**
//以下兩個**都會導致記憶體洩漏
#include
#include
#include
#include
int main()
free(p1);
#else
int *a = null;
*a = 0x01;
#endif
return 0;
}2 編譯**
注意:編譯時加上 -g
gcc -g malloc.cpp -o malloc-test -lz -lc -lm
3 設定生成coredunp檔案的環境
3.1 設定core檔案大小為無限
ulimit -c unlimited
3.2 設定檔案大小為無限
ulimit unlimited
3.3 執行可執行檔案 生成core檔案
.4 檢視core檔案內容
gdb malloc-test core
gdb:gdb為上面裝的,只需將/opt/gdb/bin/gdb複製到/usr/bin目錄下(或者設定環境變數)
malloc-test:記憶體洩漏**的可執行檔案
core:執行malloc-test生成的core檔案
以下在29行就是導致記憶體洩漏的地方
gdb的編譯及使用
參考 如果第一次配置錯誤,導致編譯失敗,重新修改配置後,可能還是不能生成正確的makefile檔案,提示類似 target alias has changed since the previous run 的資訊,具體不計的了 可能需要重新刪除 重來 設定環境變數 sudo vi etc profi...
使用gcc編譯gdb除錯
在linux系統中,預設是沒有安裝gcc編譯器的,可以通過命令 rpm q grep gcc 來檢視。安裝命令為 yum y install gcc 安裝後,編寫乙個.c結尾的檔案。gcc test.c 就會預設輸出乙個a.out的輸出檔案,這個輸出檔案就是可執行檔案。如果加上 o選項,則可以自定目...
交叉編譯GDB
gdb是一款強大的除錯工具,不多介紹了 解壓檔案tar xf gdb 7.9.tar.gz配置編譯 編寫編譯指令碼 bin bash configure cc opt mipsel gcc472 glibc216 mips32 bin mipsel linux gcc enable static c...