调试利器GDB(上)
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,调试利器GDB(上)1.1 GDB初识1.1.1什么是GDB?GDB是GNU项目中的调试器(gnu debuger),能够跟尊程序的执行,也能恢复程序崩溃前的状态1.1.2为什么需要GDB?软件产品的
千家信息网最后更新 2026年10月31日调试利器GDB(上)
调试利器GDB(上)
1.1 GDB初识
1.1.1什么是GDB?
GDB是GNU项目中的调试器(gnu debuger),能够跟尊程序的执行,也能恢复程序崩溃前的状态
1.1.2为什么需要GDB?
软件产品的研发过程必然伴随bug,调试时软件开发中不可或缺的技术(调试工具很重要)
1.1.3 DBG与binutils

1.2 GDB的常规使用
1.自定义程序得到启动方式(指定影响程序运行的参数)
2.设置条件断点(在满足条件时程序暂停执行)
3.回溯检查导致程序异常结束的原因(core dump)
4.动态改变程序的执行流(定位问题的辅助方式)
1.3 GDB的启动方式
直接启动:
gdbgdb test.outgdb test.out core动态链接gdb test.out pid
1.4 GDB的应用示例
示例1:
dbg //启动file test.out //载入目标程序set args arg1 arg2 //设置命令行参数run //执行目标程序注:gdb + file test.out == gdb test.out示例2:
gdb //启动attach pid //链接到目标进程,链接成功后目标程序将停止执行continue //恢复执行注:gdb + attach pid == gdb test.out pid1.5 断点调试
1.5.1断点类型
- 软件断点:由非法指令异常实现(软件实现),,通过中断来实现程序位于ram中
- 硬件断点:由硬件特性实现(数量有限)程序位于flash(只读)中
- 数据断点:由硬件特性实现(数量有限),监视内存,当内存被改写时触发
1.5.2软件断点相关操作
通过函数名设置断点:
break func_name [ if var = value]tbreak func_name [ if var = value]通过行号设置断点:
break file_name:line_num [ if var = value ]break file_name:line_num [ if var = value ]Tbreak设置的断点只生效一次。

1.5.3调试时相关操作
1.5.4硬件断点及其操作
当代码位于只读寄存器(flash)时,只能通过硬件断点调试
硬件断点需要硬件支持,数量有限
GDB通过hbreak命令支持硬件断点,与break使用方法完全一致
断点
程序
硬件
软件
目标
数量
数量有限
方式
有限
示例
链接
内存
动态
参数
命令
条件
特性
支持
利器
重要
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
金诺互联网科技
腾讯阿里互联网科技
互联网金融与金融科技
高科技与互联网
期待互联网科技
致骋互联网科技
科技创新互联网企业
互联网科技缩写
伴你行互联网科技有限公司
互联网科技咨询
互联网科技类展会
海南购全球互联网科技
互联网科技寓意
现代互联网科技股
哈尔滨屹滨互联网科技有限公司
互联网在线教育科技创业
互联网科技如何创业
上海互联网科技公司ppt
上海互联网科技园景观
云南咖啡
互联网佳科技有限公司
易互联网科技有限公司
互联网金融公司科技
礼当家互联网科技
互联网科技教育视频
辽宁互联网新科技
西安小鹰速贷互联网科技有限公司
图游互联网科技
美国五大互联网科技公司市值多少