您的位置首页>企业动态>

linux编程GDB调试功能

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解linux编程GDB调试功能问题。GDB是一组字符接口组件,可以用来调试linux上的c和c程序

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解linux编程GDB调试功能问题。

GDB是一组字符接口组件,可以用来调试linux上的c和c程序。它提供以下功能:

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

2显示变量值。您可以打印或监控变量并显示变量值。

3单步。

4在运行时修改变量值。

5跟踪路径。

6线程切换。

等等

以下面的过程为例。

当我们使用GDB调试程序时,我们需要在用GCC编译时添加-g,如下所示:

GDB能够调试程序的原因在于编译时的-g选项。设置此选项后,GCC会在程序中插入一些信息,作为GDB调试的铺垫。

,然后GDB就可以利用这些伏笔和信息与程序进行交互。

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

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

这两种方法都是加载要在GDB调试的铺砌程序。

在GDB和加载程序之后,我们可以进行一系列的调试操作:

1使用“设置args参数值1参数值2 .”设置输入参数。

使用“列表开头的行号”打印内容。

列表中还可以选择一个间隔来打印代码:

3.用“B位置”设置断点。

4.使用“运行参数”运行程序。

5.使用“显示变量名”显示变量。

6.使用“c”继续运行程序。

7.使用set命令更改变量值。

使用q命令退出GDB。

使用p命令打印变量值。

10设置条件断点。

11使用delete删除断点。

12使用信息中断显示断点信息。

13.使用bt显示函数调用路径。

14使用whatis或ptype显示变量的类型。

GDB是一个字符接口的集合,可以在linux上使用。

调试C++和C++程序,它提供了以下的功能:

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

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

3 单步执行

4 运行时修改变量的值

5 跟踪路径

6 线程切换

等等

下面以以下程序为例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

8用q命令来退出GDB

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

10 设置条件断点

11 用delete删除断点

12 用info break 来显示断点信息

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

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

.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content:"广告"; } .dfma img { display: block; }
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。