VS---你真的会调试吗?

目录

前言

​编辑

了解调试小知识

认识bug

调试(debug)

Debug和Release

调试快捷键

按F10会直接来到程序的入口

若用F9打上断点,则会直接跳到断点处

F10与F11的区别

条件断点

监视

内存

输入arr

输入&num

调试示例


前言

调试对于学习编程来说至关重要。很多时候代码的思路没错,语法上也没错,但就是得不到预想的结果,这时候我们就得利用调试技巧,分析代码细节,进而找出代码中的bug~

以下是有关于vs的一些调试知识和技巧,带着大家结合示例学会调试!

VS---你真的会调试吗?_第1张图片

创作不易,还望大家帮忙点点赞~

如有错误,感谢指出~



了解调试小知识

认识bug

bug在编程中可以理解为程序漏洞

调试(debug)

调试即找bug并修复bug的过程

调试可能是逐个过程的调试,也可能是隔离或屏蔽代码的方式。

Debug和Release

Debug:调试版本,不做优化,方便程序员直接调试

Release:发布版本,会各种优化,不可调试

由于Release版本不包含调试信息,它较于Debug版本占的空间会更小

VS---你真的会调试吗?_第2张图片

调试快捷键

F9:创建断点和取消断点

 条件断点:满⾜这个条件,才触发断点

F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是 和F9配合使⽤。

F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调⽤,或者是⼀条语句。

F11:逐语句,可进⼊函数内部。在函 数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。

CTRL + F5:开始执⾏不调试,即让程序直接运⾏起来。

VS更多快捷键了解:http://blog.csdn.net/mrlisky/article/details/72622009

按F10会直接来到程序的入口

VS---你真的会调试吗?_第3张图片

若用F9打上断点,则会直接跳到断点处

VS---你真的会调试吗?_第4张图片

F10与F11的区别

如下图按F10后直接运行了test函数,并没有进入函数内部。

VS---你真的会调试吗?_第5张图片

如下图,按F11会进入test函数内部,可以观察函数内部细节。

VS---你真的会调试吗?_第6张图片

条件断点

如图,当我们想观察i=8时,对着断点右击鼠标,可以使用条件断点,直接到i=8的位置,否则就要一直重复按F5到i=8

VS---你真的会调试吗?_第7张图片

监视

按F10后开始调试,打开监视窗口,输入要监视的值

VS---你真的会调试吗?_第8张图片

VS---你真的会调试吗?_第9张图片

内存

VS---你真的会调试吗?_第10张图片

输入arr

VS---你真的会调试吗?_第11张图片

输入&num

数据在内存中存储的是二进制形式,展现的是十六进制(更加简短)

VS---你真的会调试吗?_第12张图片


调试示例

VS2022、X86、Debug环境下,运行以下代码,会出现死循环,一直打印hehe

#include 
int main()
{
    int i = 0;
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    for (i = 0; i <= 12; i++)
    {
        arr[i] = 0;
        printf("hehe\n");
    }
    return 0;
}

原因是数组arr[i]存在越界访问

按F10调试代码,打开监视,我们发现越界访问的arr[12]和i的值和地址一致,所以导致i=12后的值变为i=0,造成死循环

VS---你真的会调试吗?_第13张图片

我们可以结合下图更好理解

VS---你真的会调试吗?_第14张图片

你可能感兴趣的:(c语言,开发语言,c++)