首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >VS实用调试技巧

VS实用调试技巧

作者头像
给东岸来杯冷咖啡
发布2026-01-12 20:09:42
发布2026-01-12 20:09:42
1860
举报

一、什么是bug?

bug本意是“昆虫”或“虫子”,现在指的是程序漏洞(在电脑系统或者程序中一些未被发现的缺陷或者问题)

小知识:

“Bug” 的创始⼈格蕾丝·赫柏(Grace Murray Hopper),她是⼀位为美国海军⼯作的电脑专家,

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

二、什么是debug(调试)?

所谓debug就是消灭bug的意思。中文就是调试

想要调试一个程序,首先是承认出现了问题

之前,我在做一道简单的题目的时候,怎么提交都是失败,搞了好几次,我也没耐心了,发给我的学姐,结果你猜怎么着,我刚发过去,定眼一看,找到虫子在哪里了,感觉满不好意思的

为什么我之前一直发现不了,说好听些就是潜意思认为我没有错,而检查时带着这个潜意思,说不好听的,就是死犟死犟的。所以调试一个程序首先是你要承认出现了问题 。

然后我们需要用各种各样的手段去定位问题的位置,可能是通过逐个过程的调试,也可能是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码,重新测试。

三、Debug和Release 

在VS编写代码的时候就可以看到有  debug  和  release  两个选项,这两个选项分别是什么意思呢?

  • Debug(调试版本):包含完整调试信息,无优化,便于程序员调试代码,生成的可执行文件较大(如 39KB)。
  • Release(发布版本):经过优化,去除调试信息,代码体积小、运行速度快,适合交付用户使用,生成的文件较小(如 9KB)。

从同⼀段代码,编译⽣成的可执⾏⽂件的⼤⼩,release版本明显要⼩,⽽debug版本明显⼤。

四、VS调试快捷键

那程序员该怎么调试代码呢?

1.环境准备

说的很专业啊,其实就是把VS上设置为Debug

2.调节快捷键

调节几个常用的快捷键:

F9:创建断点和取消断点

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

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

F11:逐语句,就是每次都执⾏⼀条语句,但是这个快捷键可以使我们的执⾏逻辑进⼊函数内部。在函数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。

CTRL + F5:开始执⾏不调试,如果你想让程序直接运⾏起来⽽不调试就可以直接使⽤。

五、监视和内存观察

在调试的过程中我们,如果要观察代码执⾏过程中,上下⽂环境中的变量的值,有哪些⽅法呢?

这些观察的前提条件⼀定是开始调试后观察,⽐如:

温馨提示:

想要找到以下的窗口,需要先创建断点并开始调试后才能找到

                                                        没有开始调试 也没有创建断点时

在合适的位置,按F9即可创建断点,按F5即可开始调试也可点开菜单中的调试

                                                             创建断点并开始调试后

1.监视窗口

开始调试后,在菜单栏中【调试】->【窗⼝】->【监视】,打开任意⼀个监视窗⼝,输⼊想要观察的对象就⾏。

在监视窗口观察:

2.内存窗口

在【调试】->【窗⼝】-> 【内存】打开内存窗口,观察变量在内存中的存储情况:

在内存窗口观察:

六、常见的编程错误

1.编译型错误

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

2.链接型错误

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

•  标识符名不存在

•  拼写错误

•  头⽂件没包含

•  引⽤的库不存在

3.运行时错误

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

七、实战演练

题目内容

求1!+2!+3!+4!……+10!的和,请看下面的代码

代码确实可以运行,但是得不到我们想要的结果,请调试找一下问题

首先,计算机是不会出现问题的,得不到我们想要的结果,说明  代码有问题   这个时候不要犟老老实实找bug,解决问题。

那么,该怎么找bug呢?

找bug的方式:

1.设置好断点,开始调试照着程序走

2.看看程序有么有按照我们预期的方式走

3.如果没有按照预期走说明有问题

准备好监视窗口,观察运行过程中 i n ret  sum的值是否符合预期

发现不符合预期了,问题浮现了

  • 观察ret的值,发现其在每次外循环中未重置为 1,导致累乘结果错误
  • 修复:在每次外循环开始时将ret重置为 1。

结语:

分享一下,我老师的一些话

调试过程中,要做到⼼中有数,也就是程序员⾃⼰⼼⾥要清晰的知道希望代码怎么执⾏,然后再去看代码有没有按照我们预定的路线在执⾏。

   调试    是需要反复去动⼿练习的,调试是可以增加程序员对代码的理解和掌控的,掌握了调试的能⼒, 就能看到本质,就像能给程序做B超⼀样,对程序内部⼀览⽆余。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是bug?
  • 二、什么是debug(调试)?
  • 三、Debug和Release 
  • 四、VS调试快捷键
    • 1.环境准备
    • 2.调节快捷键
  • 五、监视和内存观察
    • 温馨提示:
    • 1.监视窗口
    • 2.内存窗口
  • 六、常见的编程错误
    • 1.编译型错误
    • 2.链接型错误
    • 3.运行时错误
  • 七、实战演练
    • 题目内容
    • 找bug的方式:
  • 结语:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档