Linux操作系统gdb下载以及基本使用方法


gdb调试是个啥

gdb是GNU 发布的一个强大的程序调试工具,也是Linux 程序员不可或缺的一大利器。

下面就来正式介绍gdb的下载和使用方法了👇


~
~

gdb启动

使用gdb的前提:

gcc -g hello.c  -o hello  //生成.o文件的编译过程都得加个‘-g’

下面是我写的一个Makefile例子(如果不了解Makefile是怎么回事的同学可以看看Makefile的用法链接
在这里插入图片描述

启动gdb:

 gdb hello //hello是我们编译链接完成后的可执行文件

然后shell命令行就会变成👇
在这里插入图片描述


~
~

gdb下载

法一:直接install(如果不行就用法二)

apt-get install gdb

法二:利用Linux内部的命令行进行网上下载,下面是步骤(一步一步来就好)

1.  wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.1.tar.gz
2.  tar -zxvf gdb-8.1.1.tar.gz
3.  cd gdb-8.1.1
4.  ./configure
5.  make
6.  make install

~
~

gdb的基本使用方法

进入命令行操作,和 Shell 一样,gdb 支持命令补全。输入几个字母,按Tab键,gdb 会补全命令。按两次Tab ,会提示所有可能的命令。另外,其还支持命令缩写,如, h 代表 help ,

常用命令如下:
1.获取帮组命令 help
gdb将命令分为12个大类,使用命令: “help 子类别”可以查看没类下面的详细帮助。
如: help breakpoints
在这里插入图片描述
~
2.设置断点 break
命令用于设置断点,命令接受行号或者函数名作为参数
在这里插入图片描述
如果要清除断点的话用clear

clear sayHello//接受函数名

~
3.运行程序和单步执行
设置完断点后,就可以运行调试程序了,使用run命令(缩写为 r)运行程序至断点
在这里插入图片描述
此时,程序中断,gdb 等待用户发出下一步操作的指令。设用next 命令(缩写为 n)单步执行程序。也可以指定一个数字。下面这条命令让gdb 连续执行两行,然后停下。
如果想继续运行,可以使用continue 命令(缩写为 c )指导 gdb 继续运行程序,直至遇到下一个断点。
如果想继续单步执行,可以继续使用 next,也是以使用 step (缩写为 s), step 和 next 的最大的区别在于,step 遇到函数是会进入到内部,而next 不会进入内部.
~

4.监视变量
调试程序最基本的需求就是监视变量的值,可以使用 print 命令(缩写为 p) 显示指定变量的值。
在这里插入图片描述
如果要时刻监视某个变量的值,那么每次使用 print 就不方便。比较人性化的是,gdb 提供了watch 命令,用于设置另一种断点:“观察点”。
用法是: watch 变量名或表达式作为参数,一但值发生变化,就停下来。
~
5.临时修改变量
当某些特殊情况下,我们想让程序进入一些特殊的流程时,gdb允许用户在程序运行时改变变量的值,通过 set var 命令实现这一点。
在这里插入图片描述
~

6.查看堆栈情况
每次程序调用一个函数,函数的地址、参数、函数内部变量都会被压入“栈”(Stack) 中,运行时堆栈信息对于程序员非常重要,使用 “bt”命令可以看到当前运行时栈的情况。
在这里插入图片描述
~
7.退出 gdb
调试完毕,使用quit命令(缩写为q) 退出 gdb程序

总结:
在这里介绍的命令都是一些常见的要用的gdb命令不可能面面俱到,像gdb的命令如果遇到需要的就上网搜一搜(反正记也记不住😂),如果文章中有哪些地方有勘误或者是有不同看法的同学可以在评论区中交流交流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值