bug的定义以及VS调试方法

简介: bug的定义以及VS调试方法

1.bug是什么?

我们在敲代码,甚至是在游戏或者生活场景中,经常会说我们遇到bug了。那么bug究竟是个什么东西呢?

“Bug” 的创始⼈格蕾丝·赫柏(Grace Murray Hopper),她是⼀位为美国海军⼯作的电脑专家, 1947年9⽉9⽇,格蕾丝·赫柏对Harvard Mark II设置好17000个继电器进⾏编程后,技术⼈员正在进⾏整机运⾏时,它突然停⽌了⼯作。于是他们爬上去找原因,发现这台巨⼤的计算机内部⼀组继电器的 触点之间有⼀只⻜蛾,这显然是由于⻜蛾受光和热的吸引,⻜到了触点上,然后被⾼电压击死。所以在报告中,赫柏⽤胶条贴上⻜蛾,并把“bug”来表⽰“⼀个在电脑程序⾥的错误”,“Bug”这个说法⼀直沿⽤到今天。

bug的意思就是指程序漏洞,是需要修复的。

2.debug是什么?

在bug前加一个de,它的意思就是解决bug,也就是看作调试的意思,相当于一个找到bug并解决它的过程。

3.debug与release

这是在vs中的两种不同的版本模式。

debug调试版本就是程序员用来调试自己代码的版本

release发布版本就是程序员发布出去的代码版本,通常这个版本的代码进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的,使得用户能有更好的使用体验。同时release版本不能进行调试。

它俩有个很显著的区别就是内存大小,debug版本远大于release版本。

4.vs的调试以及快捷键

调试是有快捷键的。

F9:创建和取消断点。

图中这个红色的点就是断点,断点的作⽤是可以在程序的任意位置被设置,打上断点就可以使得程序执⾏到想要的位置暂定执⾏,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执⾏细节。

F5:其实就是平常的运行键,也就是继续运行,不中断,直到遇到断点。通常和F9一起使用。图中那个箭头表示在按F5运行之后遇到断点停了下来。

F10:是逐过程运行,也是一次运行一条语句,但遇到子函数调用时不进入,直到子函数完成后直接继续。图中箭头就是开始调试的地方,而当按一次F10之后它只会向下继续调试一行,而不会像F5那样一直向下运行

F11:是逐语句运行,和F10的区别是,当遇到函数时会进入其内部继续进行调试。而F10会直接完成函数调用。图中可以看出在按下F11之后进入了函数中调试。

VS中常用的快捷键_vs快捷键-CSDN博客这篇博客里详细介绍了vs的一系列快捷键。

5.监视

如果我们在调试中想要查看每个变量的具体数据变化,那么就要用到监视。

在监视中输入我们想要监视的变量,然后在调试时变量的不同参数就会跟着发生变化。

6.内存

除了监视基本的数值,我们还可以查看内存的情况。

在地址栏输入要查看内存的变量,就会自动定位到该地址。

7.编程常见错误分类

编译型错误:编译型错误⼀般都是语法错误,这类错误⼀般看错误信息就能找到⼀些蛛丝⻢迹的,双击错误信息也 能初步的跳转到代码错误的地⽅或者附近。编译错误,随着语⾔的熟练掌握,会越来越少,也容易解决。

链接型错误:看错误提⽰信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。⼀般是因为

• 标识符名不存在

• 拼写错误

• 头⽂件没包含

• 引⽤的库不存在

运行时错误:运⾏时错误,是千变万化的,需要借助调试,逐步定位问题,调试解决的就是运⾏时问题。

目录
相关文章
|
6月前
|
测试技术 API
修改bug引入更多bug怎么办?
修改bug引入更多bug怎么办?
127 0
|
安全 编译器 Go
读<一例 Go 编译器代码优化 bug 定位和修复解析>
读<一例 Go 编译器代码优化 bug 定位和修复解析>
104 0
|
监控 程序员 编译器
代码的调试技巧
代码的调试技巧
|
存储 程序员 C++
解决vs运行时报C4996代码错误
在解决bug的路上越走越远。。。。
247 0
|
编译器 C语言
C程序调试过程常见的错误
在C语言编程,一般需要借助C相关的编译软件,例如,在Keil uVision5编程环境下,如果提示工具连接错误,则表示MDK安装程序有问题,重新卸载,并全部删除后重新再进行安装后即可。
|
NoSQL 程序员 编译器
常用的调试技巧(如何检测bug)(一)
常用的调试技巧(如何检测bug)
常用的调试技巧(如何检测bug)(一)
|
程序员
常用的调试技巧(如何检测bug)(二)
常用的调试技巧(如何检测bug)
|
算法 IDE Java
还在断点调试?4种调试技巧让你快速定位错误!
九章算法金牌讲师、前FB资深架构师令狐冲总结了4种调试技巧,帮你高效debug。
还在断点调试?4种调试技巧让你快速定位错误!