linux编程之GDB调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 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 用 "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来显示变量的类型

技术分享

以上是关于 linux编程之GDB调试的主要内容,如果未能解决你的问题,请参考以下文章

Linux编程基础——GDB(设置断点)

Linux编程基础——GDB(设置断点)

linux中gdb的可视化调试

Linux之gdb调试工具

linux内核调试技术之GDB和GDBServer

gdb调试之linux pc和linux arm环境下