1.debug(调试)和 release(发布):
debug:调试版本,含调试信息,无优化,可直接调试。
release:发布版本,已优化,客户可直接使用,不可调试。
2.调试常用快捷键:
F9:创建断点和取消断点
断点的作⽤是可以在程序的任意位置设置断点,打上断点就可以使得程序执⾏到想要的位置暂定执
⾏,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执⾏细节。
条件断点:满⾜这个条件,才触发断点
F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是和F9配合使⽤。
F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调⽤,或者是⼀条语句。
F11:逐语句,就是每次都执⾏⼀条语句,但是这个快捷键可以使我们的执⾏逻辑进⼊函数内部。在函数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。
CTRL+F5:开始执⾏不调试,如果你想让程序直接运⾏起来⽽不调试就可以直接使⽤。
VS更多快捷键了解:http://blog.csdn.net/mrlisky/article/details/72622009
3.监视和内存观察:
3.1.监视:观察一切想观察的对象。
入口:开始调试后---调试---窗口---监视
3.2.内存:观察变量在内存中的储存情况。
入口:开始调试---调试---窗口---内存
注:1.内存中栈区使用习惯是:先使用高地址,再使用低地址;
数组随下标增长,地址由低到高增长;
因此如果arr 越界,可能覆盖到 i ;
int main()
{
int i = 0;
int arr[10] = {0};
for(i=0; i<=12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
3.3.监视数组:
一维数组:arr,x---x为想监视的元素个数
eg:arr[5]={1,2,3,4,5} 监视 arr,3---{1,2,3}
二维数组:arr, x ---x为监视的行数
eg:arr[3][4]={1,2,3,4 ,5,6,7,8 ,9,10,11,12};监视arr,2---{{1,2,3,4},{5,6,7,8}}
4.编译常见错误:
4.1.编译型错误:
显示语法错误,双击可跳转到相应部分。
4.2.链接型错误:
显示无法解析的外部符号,通常原因:
• 标识符名不存在
• 拼写错误
• 头⽂件没包含
• 引⽤的库不存在
4.3.运行错误:
bug,调试解决。