GDB是GNU项目中的调试器(gnu debuger),能够跟尊程序的执行,也能恢复程序崩溃前的状态
广德ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
软件产品的研发过程必然伴随bug,调试时软件开发中不可或缺的技术(调试工具很重要)
1.自定义程序得到启动方式(指定影响程序运行的参数)
2.设置条件断点(在满足条件时程序暂停执行)
3.回溯检查导致程序异常结束的原因(core dump)
4.动态改变程序的执行流(定位问题的辅助方式)
直接启动:
gdb
gdb test.out
gdb 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 pid
通过函数名设置断点:
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设置的断点只生效一次。
当代码位于只读寄存器(flash)时,只能通过硬件断点调试
硬件断点需要硬件支持,数量有限
GDB通过hbreak命令支持硬件断点,与break使用方法完全一致