C++语言编译器通常使用调试器工具来进行调试。调试器是一个可以与编译器配合使用的工具,它可以帮助开发人员在程序运行时检查程序的状态、变量的值、内存的分配情况等。调试器通常提供以下功能:
- 设置断点:开发人员可以在代码中设置断点,当程序执行到断点位置时暂停,方便进行调试。
- 单步执行:可以逐行或逐语句地执行程序,方便开发人员逐步查看程序执行过程。
- 查看变量:可以查看程序中各个变量的值,了解程序运行时变量的状态。
- 查看内存:可以查看程序运行时内存的分配情况,帮助开发人员检查内存错误。
- 检查堆栈:可以查看函数调用的堆栈情况,了解函数调用的顺序和参数传递情况。
- 通过使用调试器工具,开发人员可以更容易地发现和修复程序中的bug,提高程序的质量和可靠性。
断点选择
断点位置一般设置在我们怀疑可能有问题或者不确定是否有问题的语句上。
比如,我们不确定静态变量c的变化过程,就把断点设置在c这个变量执行完后的语句上,看看和心算的结果是否一致,然后点运行。
想观察变量c,按下图在左边栏右键,然后添加想观察的变量,或者按下面按钮“add watch”这样运行时就能看到执行到这步时c在内存中的值是多少了。
下面这个例子,此时因为f函数被第一次调用,还没有执行到cout语句,所有暂时没有输出结果。
想继续单步执行,按下面的按钮"next line".
这是最常用的调试步骤。其他按钮有进入函数、跳出函数、继续执行(直接执行到下一个断点,断点不一定只设置一个,没有必要单步调试的代码可以忽略,如果没设置下一个断点,将直接执行完)、停止执行。自行尝试。