当前位置: 首页 > news >正文

gdb 基本命令

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


🧩 一、启动调试

命令说明
gdb ./your_program启动 gdb 并加载可执行文件
gdb ./your_program core加载 core dump 文件进行分析
gdb --args ./your_program arg1 arg2带参数启动程序

🧭 二、运行控制命令

命令说明
runr运行程序
run <args>运行时传参
continuec继续运行程序
nextn单步执行(不进入函数)
steps单步执行(会进入函数)
finish执行完当前函数后停下来
until跳出当前循环或执行到某行
return立即返回当前函数(可设返回值)
kill终止程序

🧱 三、断点管理

命令说明
break <行号>在指定行设置断点
break <文件>:<行号>在某个文件行设断点
break <函数名>在函数入口设置断点
info breakpoints查看所有断点
delete <编号>删除指定断点
disable <编号>禁用断点(不删除)
enable <编号>启用断点
clear清除当前位置的断点

🧐 四、查看程序状态

命令说明
print <变量名>打印变量值
p *ptr打印指针指向的内容
display <变量名>每次停下都自动打印变量值
info locals显示当前栈帧的所有局部变量
info args显示当前函数的参数
backtracebt打印调用栈
bt full打印完整调用栈(含变量)
frame <编号>切换到某个栈帧
listl显示当前执行位置附近的源码
list <函数名>查看函数源码

🔍 五、监控与观察

命令说明
watch <变量>变量变化时自动停下
rwatch <变量>读变量时停下
awatch <变量>读写变量都停下
info watchpoints查看所有监视点

🔧 六、线程调试

命令说明
info threads查看当前所有线程
thread <编号>切换到某个线程
thread apply all bt所有线程打印栈信息

🧰 七、其他有用命令

命令说明
set var <变量>=<值>修改变量值
info registers查看寄存器信息
disassemble反汇编当前函数
quitq退出 gdb
set pagination off关闭分页(防止输出暂停)

💡 实用技巧

  • TAB 补全命令,比如 br<TAB> 自动补成 break
  • Ctrl + r 反向搜索历史命令
  • 可以创建 .gdbinit 文件自定义命令

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

http://www.lryc.cn/news/602750.html

相关文章:

  • 3DGRUT: 革命性的3D高斯粒子光线追踪与混合光栅化技术深度解析
  • Error: Unable to find a match: python3.8
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • Spring IOC与DI
  • 【服务器知识】nginx配置ipv6支持
  • JVM 内存共享区域详解
  • RabbitMQ概念与管理端配置说明
  • 学习游戏制作记录(改进剑投掷状态)7.28
  • 四、计算机组成原理——第7章:输入/输出系统
  • Unity_UI_NGUI_组合控件2
  • 数论1.01
  • socketpair函数详解
  • MCU+RTOS调试
  • STM32-基本定时器
  • JavaScript手录-排序算法篇
  • 二分查找的「左右为难」:如何优雅地找到数组中元素的首尾位置
  • 城阳区奥赛暑假公益班第三次入门组初赛模拟赛
  • 把振动数据转成音频并播放
  • 提取apk中的各种语言翻译成表格,python脚本
  • Lakehouse: Unifying DW Advanced Analytics in Open Platforms
  • 《Java 程序设计》第 8 章 - Java 常用核心类详解
  • 未授权访问漏洞 总结
  • 阿里云【免费试用】Elasticsearch 智能运维 AI 助手
  • python毕业设计案例:基于python django的抖音数据分析与可视化系统,可视化有echarts,算法包括lstm+朴素贝叶斯算法
  • Flutter渲染引擎:Impeller和Skia
  • 低成本嵌入式Linux开发方案:通过配置文件实现参数设置
  • R语言与作物模型(以DSSAT模型为例)融合应用高级实战技术
  • 亚远景-“过度保守”还是“激进创新”?ISO/PAS 8800的99.9%安全阈值之争
  • 11.Dockerfile简介
  • 神经网络CNN、RNN、Transform