1. GDB 相關(guān)概念
- GDB, The GNU Project Debugger, 是 Linux 下功能全面的調(diào)試工具。
- GDB 支持?jǐn)帱c、單步執(zhí)行、打印變量、觀察變量、查看寄存器、查看堆棧等調(diào)試手段
- GDB 主要用來調(diào)試 C 和 C++ 程序
2. GDB 的進入和退出
-
gcc 構(gòu)建可執(zhí)行程序時加上
-g
參數(shù)$ gcc -g -obugging bugging.c -m32
-o 指定輸出文件名, -m32 構(gòu)建32位可執(zhí)行程序
-
輸入
gdb program
進入 gdb$ gdb bugging
-
在 gdb 命令行界面,輸入
run
執(zhí)行待調(diào)試程序(gdb) run
-
在 gdb 命令行界面,輸入
quit
退出 gdb(gdb) quit
3. GDB 命令行界面使用技巧
-
命令補全
任何時候都可以使用
TAB
進行補全,如果只有一個待選選項則直接補全;否則會列出可選選項,繼續(xù)鍵入命令,同時結(jié)合TAB
即可 部分 gdb 常用命令一覽表
命令 | 簡寫形式 | 說明 |
---|---|---|
list | l | 查看源碼 |
backtrace | bt、where | 打印函數(shù)棧信息 |
next | n | 執(zhí)行下一行 |
step | s | 一次執(zhí)行一行,遇到函數(shù)會進入 |
finish | 運行到函數(shù)結(jié)束 | |
continue | c | 繼續(xù)運行 |
break | b | 設(shè)置斷點 |
info breakpoints | 顯示斷點信息 | |
delete | d | 刪除斷點 |
p | 打印表達式的值 | |
run | r | 啟動程序 |
until | u | 執(zhí)行到指定行 |
info | i | 顯示信息 |
help | h | 幫助信息 |
使用 (gdb) help command
可以查看命令的用法
-
執(zhí)行 Shell 命令
(gdb) !shell 命令