学习笔记——vs调试

What is bug?

来源:最早计算机程序出故障后,维修人员在其中找到了一只虫子,后来令程序故障的问题,被称为bug,找bug的过程就是调试(Debug)。

调试重要吗?

对于初学者而言,如果不了解调试,不会调试。在遇到bug的时候,你可能会苦恼:为什么无法运行?为什么结果不对?然后用眼睛去看自己的代码,经过漫长的修改之后,程序可以运行了,你可能依旧苦恼:为什么这样可以?苦思冥想后开始怀疑自己,去各大平台去找相关资料,认为自己没有学好,想要重学一遍,然后时间这样过去了,可能还没学到什么东西。相信我,这样重复几次,你会怀疑自己不适合干这个,

调试步骤:

1.发现程序的错误所在   

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

3.确定错误产生的原因

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

5.对程序错误进行改正、重新测试.

这是一般公司里的调试步骤,那么对于初学者个人而言的调试是怎样的呢?

Part1:

Debug   Release 

Debug版本和Release版本在vs2022版本中可以在上方栏中显示,根据需要进行切换,

在我们编译前(创建工作区后),找到对应文件,在编译后会出现一个x64,里边会有debug文件夹,里头有着该程序的可执行文件。再换成Release版本,编译运行后会出现Release文件夹,其中同样会有一个可执行文件。调试版本和发布版本有什么区别呢?

Part2:

可调试 大小 功能 环境

Debug版本是可以调试的版本,具备调试环境,大小也要比Release版本大很多,因为Release版本是对代码进行优化过的,且不具备调试环境,也是测试去测的那个版本。

Part3:

环境配置 快捷键 F5 F9 F10 断点 F11

首先要进行环境配置,这里只需要调为Debug版本就可以了,再了解一下常用的快捷键及其功能,F5,是开始调试,F9是设置断点(也可以用鼠标点击行左边),F5会按照逻辑将程序运行到下一个断点处停下。F10是逐过程一步一步往下走,但不会进入函数中去,F11是逐语句,和F10类似,但会进入到函数中去(自定义的那种),Shift+F11跳出函数。Shift+F5会结束调试,Ctrl+F5是直接执行而不调试,更多快捷键可以去编译器里找。

Part4:

观察 窗口 监制 自动 局部变量窗口 内存 反汇编 寄存器 调用堆栈

调试的时候我们是需要去观察一些数是如何变化的,它们的地址在哪?这个时候我们就需要一些窗口。调试的时候点击窗口,会有很多,这里先介绍一下自动窗口和局部变量窗口,它们所观察的对象都是由编译器自动加上的,也会自动删除,不同的是后者出现的是局部变量,创建时出现,出函数或者某个{}的时候就会消失,并且这两个窗口是无法添加变量的。

监视窗口,这个功能和前两者相同,但需要自己添加想要观察的对象,可以添加和删除。

内存窗口,会以十六进制显示地址和内存单元内的内容。

反汇编,寄存器,前者会给出每一步对应的汇编,后者会把寄存器中的数据以十六进制显示出来。

调用堆栈窗口,会显示调用函数的顺序等。

上一篇:在vs申明数组时,大小不能设置为变量的原因


下一篇:WebAPI—BOM04