Logo
Section 1 / 2

GDB入门

学习使用 GNU 调试器执行代码。

导入

GDB入门

学习使用 GNU 调试器执行代码。

在本节课中,我们将学习如何使用调试器逐行执行代码。通过这种方式,我们可以观察每一行代码的输出结果,并了解程序运行过程中各个变量的变化情况。

学习动机

掌握调试器的使用后,我们可以通过设置断点来分析不同变量的值(即程序的状态),从而更好地理解代码逻辑。

目前我们的重点是熟悉调试工具的使用方法。请先观看相关动画演示,然后在下方提供的调试工具中逐步实践每个操作步骤。

在课程后续阶段,我们将深入学习如何高效利用调试器,识别逻辑错误(语义错误和运行时错误)。届时,大家将更加深刻地体会到调试器的强大优势与实际用途。

现在,让我们开始学习 GDB:C/C++ 调试器 教程!

一次性执行代码

在学习逐行执行之前,我们先来看看如何直接一次性运行程序。

要一次性执行程序,请按照以下步骤操作:

No configuration found for ID: da006780e18abf24fb03df1bc4970bf695d34bebde15b3551acb51aa97d3776b

要直接执行代码,首先需要移除默认的断点,然后点击开始(

...
)按钮。

逐行执行代码

让我们重新回顾一下打印乘法表的程序,看看程序中的每一条指令是如何被执行的。

请观看下面的动画,了解如何以逐行模式执行程序。

No configuration found for ID: bfb4e6dde1a933391bd8ee4bffc6298d4239fa421d5b878805a02b42a7dd1278

上图展示了如何逐行执行代码。

调试器操作流程详解

下面我们一步步进行讲解。

点击“运行”后,源代码会被加载到左上角区域。如图所示,这里显示的是打印乘法表的源代码。

在第5行,可以看到一个默认标记的断点。要添加或移除断点,只需点击对应的行号即可。

通过点击开始/重启(

...
)按钮,再点击下一步(
...
)按钮,即可开始执行。为了查看每行代码的作用,可以持续点击“下一步”按钮,其对应的输出结果会显示在底部(如动画所示)。

请在下方编辑器中按照相同步骤运行代码:先直接执行一次,再逐行执行。

注意:若需再次执行代码,请点击开始/重启(

...
)按钮。或者,也可以点击调试器左上角的“加载二进制文件”按钮。

在执行过程中修改变量状态

请参考动画演示,了解如何通过添加赋值语句 Table = 3 来修改 Table 变量的值,从而使后续指令以 Table=3 的形式输出。这意味着在程序运行期间,我们可以随时更改变量的值,以便进行测试。

No configuration found for ID: 1002584e102f373576176dcc27a0c18b6a80f153a5273d603ca4e0fb8b246daf

如果当前位于最后一行 return 0;,按下“下一步”按钮(

...
)时,调试器将显示汇编代码,请忽略该内容。如需重新查看或执行代码,请点击调试器左上角的“加载二进制文件”按钮。

执行到断点处

若希望直接运行代码直到某个特定位置,可按如下步骤操作:

  1. 点击开始/重启(
    ...
    )按钮
  2. 在希望暂停的行上添加断点
  3. 点击继续(
    ...
    )按钮,程序将自动执行至断点处

请观看下方的动画演示。

No configuration found for ID: 1ccd92813f6012acf4333b78b5b2ff95d83368acc7956daccb7bc100b52cfac3

请尝试在上方代码编辑器中添加一个或多个断点,然后运行代码。

C++入门(表格打印)

深入剖析逐步执行过程(循环)