beat365 app

gdb 基本命令

gdb 基本命令

当然,以下是常用 GDB(GNU 调试器) 的基本命令汇总,适用于 C/C++ 程序调试:

🧩 一、启动调试

命令

说明

gdb ./your_program

启动 gdb 并加载可执行文件

gdb ./your_program core

加载 core dump 文件进行分析

gdb --args ./your_program arg1 arg2

带参数启动程序

🧭 二、运行控制命令

命令

说明

run 或 r

运行程序

run

运行时传参

continue 或 c

继续运行程序

next 或 n

单步执行(不进入函数)

step 或 s

单步执行(会进入函数)

finish

执行完当前函数后停下来

until

跳出当前循环或执行到某行

return

立即返回当前函数(可设返回值)

kill

终止程序

🧱 三、断点管理

命令

说明

break <行号>

在指定行设置断点

break <文件>:<行号>

在某个文件行设断点

break <函数名>

在函数入口设置断点

info breakpoints

查看所有断点

delete <编号>

删除指定断点

disable <编号>

禁用断点(不删除)

enable <编号>

启用断点

clear

清除当前位置的断点

🧐 四、查看程序状态

命令

说明

print <变量名>

打印变量值

p *ptr

打印指针指向的内容

display <变量名>

每次停下都自动打印变量值

info locals

显示当前栈帧的所有局部变量

info args

显示当前函数的参数

backtrace 或 bt

打印调用栈

bt full

打印完整调用栈(含变量)

frame <编号>

切换到某个栈帧

list 或 l

显示当前执行位置附近的源码

list <函数名>

查看函数源码

🔍 五、监控与观察

命令

说明

watch <变量>

变量变化时自动停下

rwatch <变量>

读变量时停下

awatch <变量>

读写变量都停下

info watchpoints

查看所有监视点

🔧 六、线程调试

命令

说明

info threads

查看当前所有线程

thread <编号>

切换到某个线程

thread apply all bt

所有线程打印栈信息

🧰 七、其他有用命令

命令

说明

set var <变量>=<值>

修改变量值

info registers

查看寄存器信息

disassemble

反汇编当前函数

quit 或 q

退出 gdb

set pagination off

关闭分页(防止输出暂停)

💡 实用技巧

用 TAB 补全命令,比如 br 自动补成 break

用 Ctrl + r 反向搜索历史命令

可以创建 .gdbinit 文件自定义命令

是否需要我根据你的项目场景(如调试死锁、内存问题、多线程等)给你定制一套 GDB 调试技巧?

相关推荐