GDB - Java 调试器2025年3月28日 | 11 分钟阅读 ![]() 什么是 GDB?GDB 代表 GNU 调试器。它是一个强大的工具,用于调试各种编程语言的程序,例如 C、Fortran、Go、C++ 等。它在类 Unix 操作系统上运行。这个概念由 Richard Stallman 于 1986 年编写。它实际上是一个自由软件,在 GNU GPL 下发布。这个调试器是用 C 语言编写的。 以下是 GDB 支持的各种语言:
GDB 使用简单的 CLI(命令行界面),以便用户或程序员可以轻松理解它。它允许用户检查程序或代码在执行期间的特定点正在做什么。 它还使用户/程序员能够在特定点停止程序并打印该点特定变量的值。它还对编译过程产生的二进制文件进行操作。 GDB 的安装首先,我们必须检查 GNU 调试器是否已安装在 Unix 或 Linux 操作系统上。为此,我们必须在终端中运行以下命令: 如果已经安装了 GDB,则上述命令将显示 GDB 可用的选项。如果未安装此工具,则必须在我们的系统上安装 GDB。 我们可以使用以下两种不同的方式或过程在我们的 Linux 机器上轻松安装 GDB: 1. 使用预构建的 gdb 二进制文件 在此过程中,我们必须在我们的 ubuntu 终端上运行以下两个命令。以下第一个命令用于更新依赖项: 成功执行上述命令后,运行以下命令安装 GDB: 2. 使用下载的源代码的编译过程 在此过程中,我们必须按照给定的步骤下载 GDB: 1. 在此步骤中,我们必须使用 http://ftp.gnu.org/gnu/gdb/ 站点在命令中下载源代码。 2. 现在,我们必须提取下载的源代码: 3. 提取后,我们必须通过逐个运行以下三个命令来配置和编译源代码: 4. 完成上述命令后。现在,我们必须使用下面给出的命令来安装 GDB: 默认情况下,上述命令将 GDB 的二进制文件安装在 /usr/local/bin 中,并将 GDB 的库安装在 /usr/local/lib 中。 成功执行上述命令后,我们已成功在 Linux 系统中编译并安装了 GNU 调试器。 之后,我们可以通过键入以下命令轻松查看 GDB 的版本,并验证它是否已成功安装: GDB 命令GDB 是一个命令行工具。因此,在学习如何使用 GDB 之前,我们必须学习 GDB 的命令。 GDB 提供了各种命令,可帮助用户调试代码或程序。下表显示了命令及其描述的列表:
如何使用 GNU 调试器到目前为止,我们已经学习了 GDB 是什么以及它的命令是什么,现在我们必须学习示例以及如何使用它。 在本节中,我们将学习如何使用 GNU 调试器调试程序。 现在,我们必须按照步骤来运行带有 GDB 的程序 步骤 1: 首先,我们必须在文本编辑器中创建一个 C 或 C++ 程序。因此,我们创建以下代码来查找一个数的阶乘。并且,我们将此代码保存为 .c 扩展名。 步骤 2: 现在,我们必须借助调试符号在终端中编译并构建上述 program.c。 在上面的命令中,我们使用 -g 选项,该选项用于在调试模式下编译程序。 步骤 3: 现在,我们必须使用 GDB 运行程序,因此在上面的命令之后在终端中键入以下命令 上面的命令给出了当前程序的 GDB 的以下控制台。 在此控制台中,我们必须使用 GDB 命令来分析和调试程序。 步骤 4: 最后,在调试之后,通过在 GDB 提示符下键入 quit 或 q 命令退出 GDB。 GDB 示例在本节中,我们将学习如何通过 C 编程语言的示例使用 GDB 命令 此示例查找给定数字的阶乘。在此程序中,存在用于调试目的的错误。 现在,通过在终端中键入以下两个命令来检查程序的输出。第一个命令用于编译程序 第二个命令用于运行程序 键入以上命令后,我们将看到以下输出 Enter the number: 6 The factorial of 6 is 23592240 在此输出中,6 的阶乘是错误的,因此我们必须使用命令中的 -g 选项再次编译上述程序以进行调试 现在,启动 GDB 调试器以调试问题,方法是键入以下命令。在此命令中,a.out 是编译后生成的文件。 上面的命令给出以下控制台,该控制台允许我们运行 GDB 命令进行调试 ![]() 现在,我们使用以下步骤来调试上述程序 步骤 1: 首先,我们必须使用以下语法在此阶乘程序中设置断点 在 c 程序中放置断点后,调试器将停在该断点处,并为我们提供调试提示。因此,在从头开始执行程序之前,我们必须在程序中放置给定的断点 此命令给出以下语句 步骤 2: 现在,我们必须使用以下语法在 gdb 调试器中从头开始执行 c 程序 我们可以使用上述命令轻松地从头开始运行程序。我们还可以通过在上述命令中传递参数来为代码提供命令行参数。但是,我们的程序不需要命令行参数,因此我们仅使用 run 键入上述命令后,它会给出以下用于调试的提示,并执行程序直到第一个断点 键入 6 后,它将给出以下提示 步骤 3: 现在,我们必须使用以下语法打印此程序中使用的变量的值 键入以下命令,以在控制台上显示上述程序的变量的值 在上述值中,变量 j 的值是垃圾值,因此由于此原因,阶乘程序的输出是错误的。 因此,首先我们必须将变量 j 的值初始化为 1,然后再次执行上述程序。 |
我们请求您订阅我们的新闻通讯以获取最新更新。