gdb 不能显示变量_linux编程之GDB调试

GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:

1 在程序中设置断点,当程序运行到断点处暂停

2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来

3 单步执行

4 运行时修改变量的值

5 跟踪路径

6 线程切换

等等

下面以以下程序为例

9b6ecbe59043481e268bbfd3f01cb8a4.png
d6fdf2df4ab709e8028d7b240f5abd64.png

当我们要使用GDB进行程序的调试时,在用GCC编译时需要加上-g,如下:

8daf5f95cb2f0a319a24f20e2c5bf3ad.png

GDB之所以能够进行程序的调试也是在于进行编译时的-g选项,当设置了这个选项的时候,GCC会向程序中塞入一下信息,作为GDB调试时的铺垫

,然后GDB才能够利用这些铺垫和信息与程序交互。

有两种方式可以进入GDB,一种就是直接在命令行上输入gdb,然后再在gdb中用file命令加载要调试的程序:

87dd866dd97ceef8165cc32a21037de2.png

另一种就是,直接在命令行上使用:gdb 程序名

53926395d12f7620e6d55970b9710fc6.png

这两种方法都是要在GDB中加载已经做了铺垫的将被调试的程序。

进行GDB并且加载了程序后,我们就可以进行一系列的调试操作了:

1 用 "set args 参数值1 参数值2...."来设置输入参数

2用“list 开始的行号"来打印内容

a559f61567b62776743c072d1c96aeec.png
f52d49c30b478fe2f08712df622d6f6f.png

list 还可以选取区间来打印代码:

05c8fccc6f5e03b5f264a311e2afdc78.png

3.用 ”b 位置"设置断点

4.用 “run 参数”来运行程序

0927a8adadfe0f27c52571bb382f61f9.png

5.用"display 变量名“来显示变量

6.用”c"来继续运行程序

0dabcec9c75525206637edac7024a39f.png

7.用set命令来改变变量的值

1aa536bbd5382a7c08f416005b2c7e0a.png

8用q命令来退出GDB

a7def7413d83c5ee563c59692eb22d56.png

9 用p命令来打印变量的值

10 设置条件断点

11 用delete删除断点

9e14e4f9f18ba0edf19d0dd01f21d1ad.png

12 用info break 来显示断点信息

805523b9df66546a3c005a86f30b184c.png

13.用bt来显示函数调用路径

ce8ea399444909bc40d98fdb39857e11.png

14用whatis或者ptype来显示变量的类型

d9013038366194dcb57ca37fc95a4062.png

文末给大家附上一份c/c++ Linux入门到精通的学习大纲、希望可以帮助到大家、需要视频学习的朋友可以后台私信【架构】获取学习视频链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值