Linux--gdb的使用

release版本和Debug版本

Release版本该版本用于发布的最终产品版本。它会进行各种优化,以提高代码的执行效率和运行速度。编译时通常会选择较高的优化级别,此外,该版本还会进行链接优化,移除未使用的代码和数据,减少可执行文件的大小。在编译时,通常会禁用调试符号的生成,以减少文件大小和保护源代码。

Debug版本:该版本用于调试和开发阶段的版本。它包含了调试所需的详细符号信息,可以帮助开发人员定位和修复代码中的错误。编译时通常会禁用大部分的优化选项,以便在调试过程中更好的观察和理解代码。

那么gcc在编译时会产生什么模式呢?
release模式

写个文件测试:
在这里插入图片描述
在这里插入图片描述

那如何产生一个dubug版本的呢?

在这里插入图片描述
在这里插入图片描述

GDB

gdb是一款用于调试程序的开源工具,它在Linux系统中非常常用。

安装指令:
yum install -y gdb

一般来说,系统会默认安装,如果没有,就按上面指令进行安装,如果是普通用户,需要在前面加上sudo;

一般步骤

1.先产生一个可执行程序文件;
2.启动gdb,并指定要调试的可执行文件。

指令:gdb <可执行文件>

3.在gdb命令行界面中,可以执行各种命令来控制程序的执行;
4.使用gdb提供的命令和快捷键来进行单步执行、查看变量、检查调用栈等操作,以便找出程序中的错误。

常用命令

命令作用
list(l) +行号显示binFile源代码,接着上次的位置往下列,每次列10行。
run(r)启动程序的执行
break(b)设置断点,可以是代码行、函数名等
continue ( c )继续执行程序,直到遇到下一个断点或者程序结束
info b显示当前所有断点的信息
d+断点编号删除对应的断点
disable+断点编号让对应断点失效
enable+断点编号恢复对应断点
step(s)逐语句执行,会进入函数内部
next(n)逐过程运行,不会进入函数内部
print§+变量打印变量的值
display+变量常显示变量的值
backtrace(bt)显示当前的函数调用栈
finish结束一个函数的运行
until+行数可以跳到指定行
set var 变量=值在调试过程中,直接改变变量的值
quit退出gdb

测试:

l+行号
在这里插入图片描述

断点
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

运行调试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逐语句和逐过程
在这里插入图片描述
在这里插入图片描述

查看变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

continue:断点的跳跃
在这里插入图片描述

调用堆栈查看
在这里插入图片描述

finish
在这里插入图片描述

until:
在这里插入图片描述

set var:
在这里插入图片描述
在这里插入图片描述

  • 33
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诡异森林。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值