进来看VS调试技巧

目录

Bug

什么是调试

Debug和Release

简介快捷键+窗口

实例

写出好的代码

编程常见错误


Bug

Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。

什么是调试

人们将发现Bug并加以纠正的过程叫做“Debug”(中文称作“调试”)

在调试中我们发现有Debug和Release选项两者又什么不同呢?

Debug和Release

  Debug  包含调试信息,不做优化,便于程序员调试程序
  Release  它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优
的,以便用户很好地使用
知道了二者的不同我们就试着调试代码,在调试前我们先来看看一些调试快捷键和一些辅助调试的窗口

简介快捷键+窗口

F5 启动调试,经常用来直接跳到下一个断点处

F9 创建断点和取消断点

F10 逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句

F11 逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部

F5配合F9使用可以达到节省调试时间,减少调试次数,还有更多的快捷键就不一一介绍了可以看后面的链接有着详细的快捷键使用方式 VS中常用的快捷键_MrLisky的博客-CSDN博客_vs快捷键

接下来我们来看看协助调试的窗口

要注意这些窗口需要在代码调试起来了在使用

我们主要介绍一下内存

 1:表示地址,向下地址增加

2:表示其中每两个数字表示一个字节中二进制的内容,显示是以16进制显示,可以通过修改列数来显示不同字节方便查找。

3:表示二进制对应反应的文本信息,没什么意义一般忽略

实例

掌握这些我们就来试着看一道笔试题

#include<stdio.h>
int main()
{
    int i = 0;
    int arr[10] = {0};
    for(i=0; i<=12; i++)
   {
        arr[i] = 0;
        printf("hehe\n");
   }
    return 0; }

首先我们可以看见产生了越界,所以打印的结果是什么呢

可以看到产生了死循环,结果知道了,可是为什么呢?接着我们就来分析一下这道笔试题

讲讲它为什么会这样

 以上是在写完代码调试Bug的过程,我们最好是在编写代码时就避免产生Bug,如何写出好代码呢

写出好的代码

怎么写出好的代码呢我们直接上代码
1.使用assert 断言避免传参为NULL 使用要包含头文件 <assert.h>
assert(src!=NULL);//assert(src);断言 条件为真无事,为假则报错

2.尽量使用const 

const修饰变量 这个变量被称为变常量不能被修改,但本质为变量

const如果放在*的左边修饰的是*p,表示指针指向的内容是不能通过指针来改变的

const int a=10;
a=20;//err a不能被修改
const int* p=&a;
*p=20//err *p不能修改

const如果放在*的右边修饰的是p表示指针变量不能被改变但指针的内容可以被改变

const int a = 10;
int* const p = &a;
*p = 20;
int b = 20;
p = &b;//err p不能修改

3.养成良好的编程分格

4.添加必要的备注

5.避免编程陷阱

编程常见错误

 1.编译型错误: 代码会报错

2.链接型错误: LNK20 链接错误

3.运行时错误: 借助调试,逐步定位

以上是VS调试的一些办法掌握以上方法就可以试着调试代码了,说的再多不如多加练习

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值