- gdb(GNU Debugger)
- 設置斷點
- 監視,修改變量
- 單步執行
- 查看堆棧
- 利用gdb調試的前提
- 在程序的編譯過程中使用-g選項 gcc -g -o test test.c
- 啓動gdb gdb/gdb filename(filename是可執行文件)
- gdb基本命令用途
- 文件操作 file quit shell
- 顯示源程序 list show
- 控制程序的執行 break
- 程序的運行
- 查看運行時數據 print display
- 顯示函數調用堆棧的信息 where/bt
- 文件操作
- file:裝入調試程序 file filename
- quit:退出gdb
- shell:進入shell環境,執行shell命令 退出shell:exit
- 顯示源程序
list:
- list:沒有參數,顯示從當前行開始10行
- list n:顯示從n行開始10行
- list start,end:顯示從start到end行的代碼
- list -:顯示當前行之前的10行
- list +:顯示當前行之後的10行
- list start,end 顯示從start到end行的代碼
- list main:顯示函數main
show:
- show listsize 查看顯示的行數
- set listsize 5 設置顯示的行數
- 控制程序的執行
break:
- break 10:在第10行設置斷點
- break main:在函數入口處設置斷點
- break main if i == 10
- info break/info break 1:查看斷點
- delete/delete 1:刪除所有斷點/刪除一個斷點
- 程序的運行
- run命令:運行程序,執行到斷點處,或者直到程序結束
- continue命令:
- kill命令:程序從當前位置開始,執行到斷點處,或者直到程序結束
- next命令:單步執行,不進入函數內部
- step命令:單步執行,不進入函數內部
- 查看運行時數據
print命令:顯示變量/表達式的值
- print i
- print i*j
- print array[3]@5:顯示數組的值
display命令:預先設置一些要顯示的表達式
- info display:顯示當前設置的表達式的清單
- delete display:取消對設置的表達式的自動顯示功能
- 顯示函數調用堆棧的信息
- breaktrace(bt)/where:顯示函數調用的層次關係
- up[n]:向上移動層棧幀
- down[n]:向下移動層棧幀