1.什麼是gdb
- 什麼是gdb
gdb是GNU debugger的縮寫,是程序的調試工具
2.gdb功能
- 啓動程序,可以按照用戶自定義的要求隨心所欲的運行程序
- 可讓被調試的程序在用戶所指定的調試的斷點處停住**(斷點可以是條件表達式)**
- 當程序停住時,可以檢查此程序中所發生的事
- 動態改變程序的執行環境,可以動態改變變量的值
3.運行程序
gcc -Wall -g simple.c -o simple
不加-g只會有彙編代碼而沒有源文件代碼
參數列表:程序列表 程序啓動參數a b c
- run®運行程序
- run arg1 arg2
4.查看源碼
- list(l)-查看最近10行源碼。l 2,10查看第2行到第10行代碼
- list fun-查看fun函數代碼
- list file:fun-查看file文件中的fun函數源碼
5.設置斷點與觀察點
break 10,b func
info 10,i b
break 行號
break fun
break file:行號,eg:l search.c:10
break file:fun
break if <condition> 條件成立時程序停住,eg: break if i=50,然後執行c,表示程序運行到i=50停住了
info break(i b) 查看斷點
watch expr 表達式expr值發生改變,程序停住,eg:watch i,然後執行c,只要i的值發生改變,程序就會停住
delete n 刪除斷點,n是斷點號
5.單步調試
s 單步跟蹤
until 跳出循環
finish 退出整個函數
continue© 運行至下一個斷點
step(s) 單步跟蹤,進入函數,類似VC中的step in
next(n) 單步跟蹤,不進入函數,類似VC中的step out
finish 運行程序,直到當前函數完成返回。並打印函數返回時的堆棧地址和返回值及參數值等信息
until 當厭倦了在一個循環體內單步跟蹤時,這個命令可以運行程序直到退出循環體
32:40