gdb
是GNU调试器的缩写形式。调试器是一种用于搜索、查找和获取有关应用程序二进制文件中错误的详细信息的工具。gdb公司 在大多数IDE使用的Linux社区中很流行,编程工具事件发生在Android IDE中。在本教程中,我们将了解如何开始和使用的基本功能 gdb
.
示例代码
在本教程中,我们将使用以下用C编程语言编写的简单应用程序代码。这段代码只是计算阶乘。
#include int main(void) { int fact = 1; int number=5; for (int j = 1; j <= number; j++) { fact = fact * j; printf("%d",fact); } }
为Ubuntu、Debian、Mint和Kali安装gdb
我们可以安装 gdb
对于Ubuntu、Debian、Mint和Kali,使用下面的代码行。
$ sudo apt install gdb
为CentOS、RHEL、Fedora安装gdb
安装 gdb
在基于RPM的发行版中,如CentOS、RHEL和Fedora
$ sudo yum install gdb
编译应用程序
我们将从编译示例应用程序开始。我们将使用GCC 或GNU编译器集合,它是Linux环境的实际编译器。 gcc
如果没有安装,可以用下面的线路安装。
$ sudo apt install gcc
现在我们将只提供源代码文件名来编译我们的应用程序 poftut.c
在这种情况下。
$ gcc poftut.c -o poftut
使用调试信息编译应用程序
我们可以调试所有已编译好的应用程序,但有一些有用的选项可用于在调试时提供有关应用程序的更多信息。我们可以启用调试信息,用于将调试代码与源代码匹配,并提供更详细的信息。我们可以用 -g
编译时使用 gcc
就像下面一样。
$ gcc -g poftut.c -o poftut

通过运行可执行文件进行安装调试
我们可以用不同的方法启动应用程序进行调试,但最基本、最实用的方法是从应用程序名开始。我们要开始了 poftut
应用程序如下。
$ gdb poftut

我们可以看到 gdb
在加载应用程序和相关调试信息后启动交互式shell。
相关文章: 什么是C程序设计语言
开始调试
我们可以使用 run
命令。但请记住,这将启动进程run,在这种情况下,它将毫无问题地结束。运行时,标准输出将显示在屏幕上。最后一件事是 exit status
在这种情况下这是正常的。
run

检查碰撞
使用案例之一 gbd
正在检查车祸的原因。应用程序可以通过崩溃退出,在这种情况下,崩溃信息是通过 gdb
. 我们可以用 backtrace
命令如下。
backtrace

断点
在大型应用程序中,我们通常需要检查应用程序的流。在考察的时候,我们要看具体情况,这对我们很重要。我们可以设置断点来停止应用程序的执行。我们可以很容易地检查当前的寄存器和内存值。在本例中,我们为该行设置了一个中断 printf
.
break printf
我们跑了
run

列出断点
我们可以用 info break
命令如下。
info break

列出寄存器值
我们可以列出当前的寄存器值 info registers
命令如下。请记住,寄存器值是非常不稳定的,通常每一步都会发生变化。
info registers

踏步
在调试过程中,我们通常希望进一步改变当前内存和寄存器值。我们可以用 step
这个命令。
step

在这种情况下,我们还可以指定步长计数为3。
step 3
