老板雇我来公司写Bug

发布时间:2026/9/29 2:59:41

老板雇我来公司写Bug 文章目录啥是Bug??什么是调试(debug)??debug和release之间的区别是什么呢?调试快捷键监视和内存观察监视内存调试测试总结啥是Bug??bug本意是昆虫或者虫子,现在一般是指在电脑系统或者程序中,隐藏着的一些未被发现的缺陷或问题,简称为程序漏洞。Bug的创始人是格蕾丝·赫柏(Grace Murrary Hopper),她是一位美国海军电脑专家,1947年9月9日,格蕾丝·赫柏对Harvard Mark Ⅱ设置好17000个继电器进行完编程,技术人员启动机器,突然停止了工作,于是工人们去寻找原因,最后竟然发现是一只飞蛾飞到了触点上然后被高电压击死,因此在报告中赫柏用胶条贴上飞蛾,使用bug表示一个在电脑程序里的错误,Bug这个说法一直沿用至今.什么是调试(debug)??当我们发现程序里面有问题,那么我们就要找到它,解决这个问题找问题的过程被称之为调试,英文名为debug(消灭bug)debug和release之间的区别是什么呢?在vs上编写代码的时候我们经常看到这个选项那么这个debug和release是啥意思呢?debug通常称之为调试版本,它包括调试信息并且不做优化,便于程序员去调试程序,我们在写代码的时候经常去调试代码,就把这里设置为debug,这样编译产生的debug版本的可执行程序包括调试信息可以直接调试release称之为发布版本它通常是进行了各种的优化,让程序在代码大小和运行速度上都是最优的,方便用户很好的使用,当程序员写完代码并且调试完成,程序的质量符合用户的使用标准这时就会设置为release,编译产生的是release版本的可执行程序,这个版本是用户使用的,不用包含调试信息同一段代码编译生成的可执行文件的大小,release版本更小,debug版本更大因为release版本是优化过的并且不包含调试信息调试快捷键一下是调试最常用的几个快捷键:F9:创建断点和取消断点断点:断点的作用就是可以在程序的任意位置设置断点,打上断点就可以使程序执行到想要的位置暂停执行,接下来我们就可以配合F10,F11这些快捷键观察代码执行细节F5:启动调试,用来直接跳到下一个断点处,一般和F9配合使用F10:逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者一条语句F11:逐语句,就是每次都执一条语句,但是这个快捷键可以让我们的执行逻辑进入函数内部在函数调用的地方想进入函数观察细节必须使用F11,如果使用F10会直接完成函数调用.ctrlF5:开始执行不调试,如果想让程序直接运行起来而不调试就可以直接使用监视和内存观察在调试的过程中如果要观察代码执行过程中,代码环境中的变量的值我们可以通过监视和内存观察,这些观察方式的前提条件一定是开始调试后观察的例如下面这段代码intmain(){inta[10]{0};inti0;for(i0;i10;i){a[i]i1;}return0;}监视开始调试后如下图操作打开监视窗口进入监视窗口后输入我们想要监视的变量或者数组等的名字然后一步步去调试我们就可以看到这些变量是如何变化的还有一个要注意的点就是当我们监视二维数组的时候不是简单的敲上二维数组的名字就行,还要再写上我们要监视几行例如有一个二维数组a[10][10],当我们要监视它的前五行时候打开监视窗口,然后在名称列输入: a,5 即可同理一维数组也是例如有一个一维数组b[10]我们想监视它所有的元素那么我们在监视窗口的名字列输入: b,10 即可二维数组我们选择了监视的行可以展开查看列内存注意我们想要观察谁就在谁的名字前面加上取地址符就行啦,数组就不用了因为数组名就是数组的首地址除此之外我们还有自动窗口自动窗口会根据我们的代码自动给出这些要监视的变量根据我们一步步的调试这些被监视的变量会消失或者出现,这样一来就不太利于我们去观察变量的变化了,因此我们只了解了解即可,平常我们依旧使用监视窗口来监视我i们想要监视的变量调试测试请大家在VS2022,X86,Debug的环境下,编译器不做任何优化,下面代码的结果是什么??#includestdio.hintmain(){inti0;inta[10]{1,2,3,4,5,6,7,8,9,10};for(i0;i12;i){a[i]0;printf(haha);}return0;}最后这个代码会陷入死循环,为啥呢?数组越界应该报错呀,为什么会死循环呢?我们无论如何是想不出来的,只有去调试才能知道这个代码中到底发生了什么导致死循环.其实这里是有一个巧合,这里我们一直让下标变化到了12,其实i的地址和a[12]的地址重合了因此导致了这组函数陷入了死循环,当然这种巧合是在我们这个代码环境中的如果我们的代码环境变了其实也不会造成这种巧合所以当我们遇见我们无法理解的情况的时候一定要去调试,调试完后我们就会恍然大悟,原来如此总结本文系统地介绍了 C/C 程序调试的核心概念与实用技巧Bug 与调试基础从 Bug 的历史起源到调试的基本定义明确了调试就是发现并解决程序问题的过程。Debug 与 Release 模式详细对比了两种编译模式的区别Debug 版本包含调试信息便于开发调试Release 版本经过优化适合发布使用。调试快捷键掌握了 F9断点、F5启动调试、F10逐过程、F11逐语句等核心快捷键的使用方法。监视与内存观察学会了在调试过程中通过监视窗口和内存窗口观察变量值的变化这是理解程序运行状态的关键手段。实战调试案例通过数组越界导致死循环的经典案例展示了调试在解决复杂问题中的不可替代性。调试不仅是解决问题的工具更是深入理解程序运行机制、提升编程能力的重要途径。掌握这些调试技能能够帮助开发者更快定位问题、更深入理解代码执行逻辑从而编写出更健壮、更高效的程序。记住当代码行为不符合预期时不要只是猜测打开调试器让程序自己告诉你发生了什么每日一问:今天你调试了吗?
延伸阅读

更多相关文章

2026/9/26 0:47:12

教育培训类网站建设指南:如何打造高转化率的在线学习平台

在这个知识付费和在线学习日益普及的时代,许多教育机构的老板、校长或者市场负责人都会问我同一个问题:“老师,我想做个网站,但市面上模板那么多,到底该怎么选?怎么弄才能既显得专业,又能真正招到学生?”说实话,这种困惑太正常了。因为我见过太多的教育机构,花了大价…

2026/9/29 2:09:49

围棋AI分析终极指南:5个步骤掌握LizzieYzy专业复盘工具

围棋AI分析终极指南:5个步骤掌握LizzieYzy专业复盘工具 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 围棋AI分析工具LizzieYzy是每位围棋爱好者的智能复盘助手,这款免费开…

2026/9/29 2:59:11

Android蓝牙开发实战:经典蓝牙与BLE全流程踩坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 2:59:11

记忆张量亿元Pre A融资后,AI记忆如何成为Agent的长期基础设施

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 2:54:11

从零构建高可信接口自动化测试平台

1. 为什么现在还要从零搭一个接口自动化测试平台?“接口自动化测试平台”这八个字,最近半年在我们团队的周会纪要里出现了47次。不是因为大家突然爱上了测试——而是因为线上服务的接口数量,从年初的83个,暴增到现在的526个&#…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑