gdb 除錯例項

2021-06-03 18:20:50 字數 549 閱讀 7715

一、gdb 除錯段錯誤

(1)編寫**

vim segfault.c

#include

int main()

char *buf;

*buf = "hello,world";

retrun 1;

(2)編譯

#gcc -g segfault.c

#lsa.out segfault.c

(3)除錯

#./a.out

segmentation fault (core dumped)

#gdb ./a.out ./core

#0  0x2b38 in main (argc=1, argv=0x7f7f06b4) at segfault.c:8

8          *buf = "***";

哈哈出來了!

二、gdb除錯程序

#ps -ef | grep test

獲取程序號,比如是1777

#gdb

(gdb)attach 1777

(gdb)   bt

GDB除錯精粹及使用例項

gdb除錯精粹及使用例項 一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前...

GDB除錯精粹及使用例項

一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前一條run命令的引數,這是...

GDB除錯精粹及使用例項

一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前一條run命令的引數,...