调试器的调试命令除了单步(stepping)外,还有其他4种:
1、run to cursor 运行到光标
2、continue 继续执行
3、start 启动调试
4、breakpoint 断点
下面分别介绍。
1、run to cursor 运行到光标
把光标移动到想要运行到那里的语句,然后鼠标右键,出现run to cursor菜单。点击后,程序运行到此处后停下。这时调试器会出现两个特征:
(1)光标所在行出现调试暂停的标志,一个黄色的箭头,如下图所示:
(2)点开debug菜单项,可以看到调试已经启动,Stop Debugging子菜单处于激活状态:
由此可见,run to cursor包含几个步骤:启动调试(start)、在当前光标行设立一个临时断点、运行到光标所在行(该行尚未执行)。
2、continue 继续执行
当程序进入调试模式运行到某处停下,当完成了观察变量值、弄清楚程序执行逻辑等工作后,想要程序继续往下运行(到程序末尾或到下一个断点),就使用continue命令继续执行程序。
3、start 启动调试
当程序处于未调试状态时,从Debug菜单中单击Start Debugging,启动程序调试:
4、breakpoint 断点
断点的含义是,调试器执行程序指令,到设置好停下的语句处(称为断点),就会暂停执行,以便查看(inspect)变量值。
断点的设置,根据需要观察变量的语句所在位置而选择。可以设置多个断点,每到一个断点位置,程序都会在断点处暂停,当前语句称为继续调试的起点位置。下图是用来调试的一个示例代码及设置的断点:
#include <iostream>
using namespace std;
//用于step into调试命令而定义的函数
void Increment(int &a)
{
a++;
cout << " a = " << a << endl;
}
//main函数中逐步改变变量a的值,在调试模式下进行观察
int main()
{
int a = 0;
Increment(a);
Increment(a);
a = a * 2;
Increment(a);
Increment(a);
int b = a + 2;
Increment(a);
cout << "Program terminated.";
}
【小结】本文介绍了处stepping 单步调试命令以外的其他四种调试命令,分别是:
run to cursor, continue, start, breakpoints.