「C++学习笔记」Linux上的C++开发编译入门(二)(gdb调试)

1、常用命令

回车键:重复上一命令

命令简写说明
helph查看命令帮助
runr重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件)
start 单步执行,运行程序,停在第一执行语句
listl查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数)
set 设置变量的值
nextn单步调试(逐过程,函数直接执行)
step 单步调试(逐语句:跳入自定义函数内部执行)
backtracebt查看函数的调用的栈帧和层级关系
framef切换函数的栈帧
infoi查看函数内部局部变量的数值
finish 结束当前函数,返回到函数调用点
continuec继续运行
printp打印值及地址
quitq退出gdb
break+numb在第num行设置断点
info breakpoints 查看当前设置的所有断点
delete breakpoints numd删除第num个断点
display 追踪查看具体变量值
undisplay 取消追踪观察变量
watch 被设置观察点的变量发生修改时,打印显示
i watch 显示观察点
enable breakpoints 启用断点
disable breakpoints 禁用断点
x 查看内存x/20xw 显示20个单元,16进制,4字节每单元
run argv[1] argv[2] 调试时命令行传参
enable breakpoints 启用断点
set follow-fork-mode_child #Makefile开启core,当程序出错会自动生成core文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、简单调试举例

使用如下代码:

2.1 编译

通过加或不加 -g 编译两个版本。

可以看出,加上-g的可调试版本从文件大小上,明显更大一些,包含了根多的内容。

2.2 进入和退出调试

分别使用gdb xxx,对两个可执行文件分别调试,看看差别,并使用quit(q)退出调试

可以看到,不加-g编译出的文件是不可以调试的。

2.3 简单调试示例

2.3.1 添加断点( break / b)

gdb sum_with_g

分别给第14行和第19行加上断点

break 14
# 简写为b
b 19

2.3.2 查看所有断点(info breakpoints)

2.3.3 运行并命中断点(run / r)

2.3.4 查看(打印)变量(print / p)

2.3.5 追踪变量,继续运行查看(display )

2.3.6 保存断点到文件

save breakpoints dconfig.dp

保存后推出调试

2.3.7 加载断点文件进行调试

gdb sum_with_g -x dconfig.dp

重新进入调试后看到已经应用了断点文件


基本操作上就这些了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值