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;,按下“下一步”按钮()时,调试器将显示汇编代码,请忽略该内容。如需重新查看或执行代码,请点击调试器左上角的“加载二进制文件”按钮。...
执行到断点处
若希望直接运行代码直到某个特定位置,可按如下步骤操作:
- 点击开始/重启()按钮...
- 在希望暂停的行上添加断点
- 点击继续()按钮,程序将自动执行至断点处...
请观看下方的动画演示。
No configuration found for ID: 1ccd92813f6012acf4333b78b5b2ff95d83368acc7956daccb7bc100b52cfac3
请尝试在上方代码编辑器中添加一个或多个断点,然后运行代码。