然后再打开一个文件,这里我打开的是一个冒泡排序的程序。
xxxxxxxxxx
using namespace std; //指定名字空间
int main()
{ //主函数
int a[100]; //定义数组,大小100
int N; //元素的实际个数
int i = 0, j = 0; //循环变量,并进行初始化
cin >> N; //输入元素个数
//-------输入数据-----------
for (i = 0; i<N; i++) //输入N个元素
cin >> a[i]; //循环体只有一行
//-------排序---------------
for (i = 0; i<N - 1; i++) { //控制n-1趟冒泡
for (j = 0; j<N - 1 - i; j++)
{
if (a[j]>a[j + 1]) { //比较相邻的两个元素
int tmp; //临时变量
tmp = a[j]; //交换
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
//--------输出----------
for (i = 0; i<N; i++)
{ //使用循环,输出N个元素
cout << a[i] << " "; //输出a[i], 后加空格,不换行
}
cout << endl; //所有元素输出完之后才换行
return 0; //函数返回
}
默认情况下,程序会瞬间从开头执行到结尾,除非中途出现错误(称为“运行时错误”,比如读写内存失败、数组越界等)。要想让程序暂停执行,就需要设置一个断点。
点击全部重新编译或者按F12,就是这四个小正方形拼起来的图标,编译不报错就可以进行下一步了。
可以在调试窗口,点击右键,右键菜单选择添加查看。
添加完成后会在这里显示,这是还不会显示数值,因为程序还没有运行。
然后我们可以点击调试窗口的下一步[N],来控制程序执行下一个语句,这样我们可以清楚得看到程序的执行步骤。
调试成功,设置断点行会变成蓝色,表示下一步会运行到此行。 注意:蓝色行不表示此行已运行完,可以理解成即将运行。
每一次点击调试栏中的下一步即可,让程序运行到下一步。
如果程序需要输入,那就输入数据,蓝色代表当前程序正在运行的位置。这里程序需要输入一个数字。
注意:遇到要输入数据的那一行代码,先点击下一步,然后进行输入,回车即可。
这样我们可以看到我们添加的变量在随着我们的一步步控制下在改变,这样就可以明白程序是怎么运行的,也可以知道在哪一步程序不是按我们预期的步骤去走,能较快的调试程序。
当程序暂时执行时,借助调试窗口中的按钮可以查看某些变量的值,还可以控制编译器继续往下执行程序。整个调试窗口中,常用的按钮以及含义分别是:
● 添加查看:查看某个变量的值,还可以看到值的变化情况;
● 下一步:控制编译器向下执行一行语句;
● 单步进入:功能和“下一步”按钮类似,不同之处在于,当程序中调用某个自定义的函数时,此按钮可以进入到函数内部,继续调试函数内部的代码,而 "下一步" 按钮不会;
● 跳过:继续执行程序,遇到下一个断点暂停执行;
● 停止执行:停止调试程序。
目前,多数人使用的都是 Windows 10 操作系统,但遗憾地是,即便是最新版本的 Dev C++(目前的最新版本是 5.11),在 Windows 10 上的兼容性并不好,有时会出现各种奇葩的问题。
举个例子,某些版本的 Dev C++ 调试 C++ 程序时,遇到 endl 会出现“卡死”的情况,无法继续调试程序。遇到这种情况,比如容易的解决方案是:将 endl 用 '\n' 替换,就可以解决这个问题。
选择工具,选择编译选项 ---> 代码生成/优化 ---> 连接器,将’产生调试‘信息更改为Yes
选择工具,选择环境选项--->基本--->选中查看鼠标指向的变量
有些同学可能调试的时候会遇到,如果没有可以跳过,方法是依次添加下边的配置
xxxxxxxxxx
-g3
-static-libstdc++ -static-libgcc -g3
gcc.exe -D__DEBUG__
g++.exe -D__DEBUG__