全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

从多个方面详解gdb单步调试

发布时间:2023-11-23 01:22:24
发布人:xqq

一、调试前的准备工作

在进行gdb单步调试之前,我们需要先进行一些准备工作。

第一步是在编译时加上-g参数,在代码中加入调试信息。

以C程序为例:


gcc -g -o test test.c

第二步是设置gdb调试信息。


gdb test

接下来,我们可以使用gdb的一些基本命令来进行调试。比如,我们可以使用下面的命令来查看程序的代码:


list

二、进行单步调试

在准备工作完成之后,我们就可以进行单步调试了。

使用gdb的step命令可以让程序进入到下一行代码。如果下一行代码是一个函数,step命令会进入到该函数的第一行代码。


step

使用gdb的next命令可以让程序执行下一行代码。如果下一行代码是一个函数,next命令不会进入到该函数内部,而是直接执行该函数并进入到下一行代码。


next

使用gdb的finish命令可以让程序执行完当前函数并回到调用该函数的代码处。


finish

三、查看变量的值

在调试程序的过程中,我们经常需要查看变量的值。

使用gdb的print命令可以查看指定变量的值。


print var

使用gdb的display命令可以持续查看指定变量的值。


display var

使用gdb的watch命令可以在指定变量的值发生改变时停止程序的执行。


watch var

四、跟踪函数调用

在程序执行过程中,函数的调用关系对于程序的运行非常重要。gdb可以帮助我们跟踪函数的调用关系。

使用gdb的backtrace命令可以打印出函数的调用栈。


backtrace

使用gdb的frame命令可以切换堆栈帧,进入到指定的函数执行环境。


frame 1

五、设置断点

在调试程序的过程中,我们经常需要设置断点来观察程序的执行情况。断点可以在指定的代码行上暂停程序的执行。

使用gdb的break命令可以设置断点。


break main.c:10

使用gdb的info break命令可以列出当前设置的所有断点。


info break

使用gdb的delete命令可以删除指定编号的断点。


delete 1

六、总结

以上是gdb单步调试的基本操作。通过这些操作,我们可以更加高效地进行程序调试,定位程序中的问题。

gdb单步调试

相关文章

Jupyter打不开了怎么办

Jupyter打不开了怎么办

2023-11-23
CentOS创建目录用法介绍

CentOS创建目录用法介绍

2023-11-23
Linux Vim 显示行数

Linux Vim 显示行数

2023-11-23
linux检查硬盘状态命令,linux检查硬盘

linux检查硬盘状态命令,linux检查硬盘

2023-11-23

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取