📌 GDB 命令 - 调试命令
🚀 从头开始使用 GDB 的流程
-
编译代码以便调试
使用-g
选项编译源代码,以便生成调试信息:gcc -g your_program.c -o your_program
-g
选项用于在编译时包含调试符号,这样可以在 GDB 中查看源代码信息。 -
启动 GDB
使用以下命令启动 GDB 并加载你的程序:gdb your_program
这将进入 GDB 调试器,并加载可执行文件
your_program
。 -
设置断点
在程序中设置一个或多个断点,使程序在执行到某些特定位置时暂停:(gdb) break main # 在 main 函数处设置断点 (gdb) break 10 # 在第 10 行代码处设置断点 (gdb) break function_name # 在指定函数入口处设置断点
-
运行程序
使用以下命令运行程序,程序会在遇到断点时暂停:(gdb) run
-
单步调试
n
/next
:执行下一行代码,不会进入函数体。s
/step
:单步执行代码,遇到函数调用会进入函数内部。finish
:执行完当前函数,跳出函数体。
-
查看和修改变量
p
/print 变量名
:打印变量的当前值。set var 变量名=新值
:修改变量的值。
-
查看调用栈
在程序暂停时,可以使用backtrace
命令查看调用栈,了解函数调用的顺序:(gdb) backtrace
-
继续运行程序
使用以下命令继续运行程序,直到遇到下一个断点:(gdb) continue
-
退出 GDB
当调试结束时,可以使用以下命令退出 GDB:(gdb) quit
🚀 运行 GDB 程序
start
:程序停在第一行run
:遇到断点才停
▶️ 继续运行,到下一个断点停
c
/continue
⏭ 向下执行一行代码(不会进入函数体)
n
/next
🔍 向下单步调试(遇到函数进入函数体)
s
/step
finish
:跳出函数体
🛠 变量操作
p
/print 变量名
:打印变量值ptype 变量名
:打印变量类型
🔄 自动变量操作
display num
:自动打印指定变量的值i
/info display
:查看所有已自动显示的变量undisplay 编号
:取消自动显示
⚙️ 其它操作
set var 变量名=变量值
:修改变量值until
:跳出循环
📌 GDB 命令 - 启动、退出、查看代码
🔄 启动和退出
gdb 可执行程序
:启动 GDB 并加载指定程序quit
:退出 GDB
🎛 给程序设置参数/获取设置参数
set args 10 20
:设置运行参数为10
和20
show args
:显示当前程序的运行参数
📚 GDB 使用帮助
help
:查看 GDB 使用帮助
📝 查看当前文件代码
list
/l
:从默认位置显示代码list
/l 行号
:从指定行显示代码list
/l 函数名
:从指定函数显示代码
🗂 查看非当前文件代码
list
/l 文件名:行号
:显示指定文件的代码list
/l 文件名:函数名
:显示指定文件的函数代码
🔢 设置显示的行数
show list
/listsize
:显示当前每次list
命令显示的行数set list
/listsize 行数
:设置每次list
命令显示的行数