• vs调试技巧(详细)



    在这里插入图片描述

    一.简介

    1.调试是什么

    在这里插入图片描述

    调试本身是一个动作,是用来除去错误的动作

    2.调试的基本动作

    1.发现程序错误所在

    主要有三类人发现bug
    1.程序员自己
    2.测试人员
    3.用户

    2.以隔离消除等方式对错误进行定位

    顾名思义,就是先找到错误的代码在哪一部分,再对这段代码进行检测

    3.确定错误产生的原因

    4.提出纠正错误的解决方法

    5.对错误进行修改和测试

    3.Debug和Rlease的介绍

    在这里插入图片描述

    在我的vs里有这样的格式:

    在这里插入图片描述

    具体的区别就是Debug的模式是程序员自己用的版本,里面包含各种调试信息,程序员可以在里面进行调试

    在这里插入图片描述

    Rlease版本就是用户使用的版本,不包含调试信息,所以不能调试,但因此它占的内存会更小,更有利于发布

    ps:这里补充一个小知识,其实vs并不是编译器,而是被叫做IDE(集成开发环境)(集编译器和调试器为一体)

    二.调试介绍

    1.调试环境准备

    调到Debug模式
    在这里插入图片描述

    2.快捷键的使用

    在这里插入图片描述
    F5

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

    F9

    创建断点和取消断点

    断点的重要作用,可以在程序的任意位置设置断点

    这样就可以使得程序在想要的地方停下来,继而一步步执行下去
    断点就是让程序停下来的点

    这两个键经常一起使用

    在这里插入图片描述

    我在123行按一下F9,出现了一个 红点,这就是断点,再按F5,看下图

    在这里插入图片描述

    这里先叫我输入,因为前面有个scanf函数,如果没有这个scanf,那么按F5的话就会直接跳到这个红点位置

    ps:断点可以设置多个,依次按F5会依次跳到下一个断点

    在这里插入图片描述

    F10

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

    F11

    逐语句,就是每次都执行一条语句,但这个快捷键可以帮助我们进入函数内部(这个功能是最常用的)

    CTRL+F5

    开始执行不调试,也就是我们常用的运行程序的键位

    F10的使用
    在这里插入图片描述
    在这里插入图片描述

    与F5不同的是,F5是直接跳到断点处,而F10是一条一条的执行

    F11的使用
    在这里插入图片描述

    使用F11就可以直接进入menu函数内部,而用F10会直接跳到retrn 0

    当然我们使用F5和F9组合也可以进入函数内部,只需要将断点放在函数内部就可以了

    在这里插入图片描述

    三.调试时看当前信息

    1.查看临时变量的值

    首先打开监视窗口

    在这里插入图片描述

    记得看窗口时一定要先调试(按F5或F10)起来,不然是无法看到的

    在这里插入图片描述

    随便打开一个调试窗口,然后我们向里面输入我们要查看的变量

    在这里插入图片描述

    这里还没有初始化,,所以里面放的是随机值

    在这里插入图片描述

    按F10向下走,这时就可以看到x,y被初始化了,接下来我们再添加z监视,再按一下F10

    在这里插入图片描述

    可以看到直接完成了函数得出了z的值

    如果我们检测数组会怎样呢
    在这里插入图片描述

    可以看到我们依然可以看到arr的所有元素,那么我们如果进入函数呢,按F11进入函数

    在这里插入图片描述

    可以看到这里只显示了第一个元素,那我们如何显示所有元素呢

    在这里插入图片描述

    其实很简单,只需要再数组后面加个,再加上数字,就可以让你看到几个元素啦

    2.查看内存

    在这里插入图片描述

    如果我们想看a的地址那么我们只需要&a就可以了

    在这里插入图片描述

    然后按回车,里面出现的值就是a的地址啦

    在这里插入图片描述

    需要注意的是地址在编译器中其实是二进制放的,但为了方便看,所以用16进制表示

    在这里插入图片描述

    这里面的数就是a的值,其实它在内存中也是二进制放的,但为了方便也是16进制显示的。a在16进制中就是10

    这样其实不好看,因为a是int类型,只有32位2进制也就是8位16进制,所以在后面全放的是c(至于为什么是c而不是其他值就要看函数堆栈啦),我们不需要看后面的数,所以我们可以调整窗口让其只显示前8位16进制数,也就是4列

    在这里插入图片描述在这里插入图片描述

    同理我们可以看看b的内存,在16进制中c就是12

    在这里插入图片描述

    四.多多动手调试

    调试是非常重要的

    在这里插入图片描述

    好啦,这里就介绍到这里啦,当然vs的调试功能是很强大的,其他窗口像是反汇编,堆栈…有兴趣的朋友可以自己看看啦

    在这里插入图片描述

  • 相关阅读:
    Nginx学习笔记02——安装部署Nginx
    Flink算子如何限流
    AI发展历史
    为Ubuntu网页设置稳定的数据隧道
    ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作
    [Linux/初学者]Vim文本编译器的模式切换及其常用指令
    spring事务传播特性,即spring管理事务的策略
    232. 用栈实现队列
    SpringBoot启动流程源码分析
    C语言实现八种功能的通讯录(添加、删除、查找、修改、显示、排序、退出、清空)
  • 原文地址:https://blog.csdn.net/m0_73790767/article/details/128041945