假設當前目錄下有5個文件。
文件內容如下:
// add.c int myadd(int a, int b) { return a+b; } // mul.c int mymul(int a, int b) { return a*b; } // div.c int mydiv(int a, int b) { return a/b; } // x.h int myadd(int a, int b); int mymul(int a, int b); int mydiv(int a, int b); // x.c #include <stdio.h> #include "x.h" int main() { int a = 100; int b = 12; int add, mul, div; add = myadd(a, b); mul = mymul(a, b); div = mydiv(a, b); printf("%d + %d = %d\n", a, b, add); printf("%d * %d = %d\n", a, b, mul); printf("%d / %d = %d\n", a, b, div); return 0; }
1. 使用gcc編譯文件,注意要加上-g參數。(-g : 在執行代碼中包含調試信息)
2. 使用gdb調試可執行文件x,進入調試頁面
gdb x
常用命令:
(gdb)list:查看原代碼(list-n,從第n行開始查看代碼。list+ 函數名:查看具體函數,list main 返回主函數),簡寫l
(gdb)break+num:在第num行設置斷點,簡寫b。b+函數名,給函數設置斷點
(gdb)run:重新開始運行文件, 簡寫r
(gdb)print:打印值及地址, 簡寫p
(gdb)next:單步調試(逐過程,函數直接執行),簡寫n
(gdb)step:單步調試(逐語句:跳入自定義函數內部執行),簡寫s
(gdb)quit:退出gdb,簡寫q