Linux下gdb基础命令演示,及命令汇总图

提示:本文主要介绍了什么是gdb,以及gdb指令及其具体使用案例
在这里插入图片描述
————故不积跬步,无以至千里;不积小流,无以成江海。


一、gdb模式下命令一览。

1.1基本命令:

命令描述
q/quit退出gdb
l查看源文件源码
b 6(x)添加断点到gdb的第x行
info b查看断点(可设置多个断点)
d x删除所设置的第x个断点,有多个断点
r运行代码
watch n当我们在n处设置的观察点时,r后该命令显示n处程序
n单句执行(VS下逐过程F10)
s单条执行(VS下逐语句F11)
c程序继续运行,除非遇到新的断点,或者程序结束

1.2 断点命令:

命令描述
finish运行完当前函数的代码回到调用该函数处,然后停下来等待命令
break + n在第n行设置断点
tbreak + 行号或函数名设置临时断点,到达后被自动删除
break + 行号 + if + 条件用于设置条件断点,在循环中使用非常方便
clear + 要清除的断点行号清楚对应行号的断点
delete + 要清除的断点编号针对断点编号的清楚断点
disable+断点编号使得指定编号断点暂时失效
watch+变量设置一个观察点,当变量被读出或写入时程序被暂停

1.3 数据命令:

命令描述
display +表达式显示表达式的值,当程序运行到断点处就会显示
delete + display 编号用于删除一个要显示值的表达式,被删除的表达式将不被显示
disable/enable + display 编号使一个要显示值的表达式暂时失效/使能
print§ + 变量/表达式用于打印变量或表达式的值
info display用于显示当前所有要显示值的表达式的情况

1.4 调试相关命令:

命令描述
set width + 数目设置GDB的行宽
set width + 数目设置GDB的行宽
cd + 工作目录切换工作目录
r/run程序开始执行
step(s)进入式(会进入到所调用的子函数中)单步执行,进入函数的前提是,此函数被编译有debug信息
finish一直运行到函数返回并打印函数返回时的堆栈地址和返回值及参数值等信息
until + 行数运行到函数某一行
continue©执行到下一个断点或程序结束
return <返回值>改变程序流程,直接结束当前函数,并将指定值返回
call + 函数在当前位置执行所要运行的函数

二、什么是gdb?

同Windows下的VS编译器下的调试机制一样,在Linux系统下有着它独特的调试器gdb,用来帮助我们发现并解决编程中产生的错误。

2.1 基础命令展示

gdb编译器进入方式:
在这里插入图片描述
当我们直接通过gdb进入时,会发现它提示了一堆的东西。
除了执行程序的基本信息,还提示没有在debug版本下。
当我们打开Linux时,默认都就是release模式,不具备调试信息,此时就需要在makefile中编译时加上**-g选项。
在这里插入图片描述
重新生成:就会发现没有了debug提示!
在这里插入图片描述
学会了进入,我们先了解一下gdb模式如何退出:quit/ctrl+d命令
在这里插入图片描述
在gdb模式下万能的
ctrl+c命令会失去效果,摁一万次也不能成功退出gdb模式。
此时我们可以通过输入
quit命令,或者直接使用ctrl+d**的方式退出。

gdb下增加断点:b X。
gdb下查看断点:info b。
gdb下删除断点:d X。
在这里插入图片描述
gdb下运行程序:r
gdb下逐句执行:n(vs中F10)
gdb下逐条执行:s(vs中F11)
在这里插入图片描述
gdb下逐断点、逐程序执行:c
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值