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

目录

前言

​编辑

了解调试小知识

认识bug

调试(debug)

Debug和Release

调试快捷键

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

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

F10与F11的区别

条件断点

监视

内存

输入arr

输入&num

调试示例


前言

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

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

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

如有错误,感谢指出~



了解调试小知识

认识bug

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

调试(debug)

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

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

Debug和Release

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

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

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

调试快捷键

F9:创建断点和取消断点

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

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

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

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

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

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

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

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

F10与F11的区别

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

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

条件断点

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

监视

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

内存

输入arr

输入&num

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


调试示例

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

#include <stdio.h>
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,造成死循环

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

  • 35
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值