记一次有趣的debug,VS编译器上Debug和Realease的差异

news2024/11/18 11:46:41

        之前自己写过一个imageread的函数,用了好久一直没问题。最近两天,同事让我realease一个项目给他,其中就包含了我自己写的imageread函数。

        我的函数就长这样,不包含公司的code,不算泄密哈。

        在realse之前,我在debug模式下测试的半天,没问题。然后,就是接下来的。。。不断报错,提示“Image read fail!”。

        然后我就觉得莫名其妙,debug模式和realease模式的所有配置都一样,命令行也一样,反正就是各种配置都一样,为啥debug能跑通,realease模式就是中途跳出?


        话说,昨天搞这个bug的时候,搞了半天也搞不好。然后,又快下班了,就把我领导叫来了,让他帮忙看看。

        先是他在座位上听了我描述的现象觉得,可能是内存的问题,有可能哪里没有初始化,或者是哪个地方的内存没有释放,等等。然后,我觉得不应该,他就从座位上起来,到我位置上帮我debug,老将出马。。。不出三分钟,搞定!

        原来是我的这个bool型的imageread函数,在其中的某一个分支没有给返回值,结果这次跑的时候正好就走的这个分支。

        我这个函数之前的逻辑是:如果运行到函数内部的某处,读图出现问题就马上return false并打印错误信息。如果是读图成功的话,就不考虑返回值了,忘记return true了。

        在那个分支加上return true的返回值后,realease模式就正常了,得到了和debug模式相同的结果。(不再出现“Image read fail!”了) 

        后来,听我领导说,可能是因为你这个地方没写返回值,然后程序运行到这里以后就会返回一个系统默认值。可能这个默认值,在debug模式下是true,这样也正好符合逻辑,程序正常进行。而在release模式下,这个默认值为false,也就是说,图像明明读成功了却返回了false,最终导致程序跳出,并返回错误信息,读图失败。

  

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/803875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一些有意思的人工智能发展状况数据

随着大型语言模型(LLM)的引入,机器学习(ML)和人工智能(AI)首次被日常开发人员所使用。这些令人感觉很神奇的应用程序,甚至是拥有数十亿研发支出的,在以前连大型科技公司几…

探索Java API学习路线:从基础到高级的全面指南

文章目录 第一阶段:入门基础1. 环境准备2. 学习Java基础 第二阶段:熟悉常用的Java API1. Java标准库2. Java API文档 第三阶段:深入学习特定领域的Java API1. Java GUI API2. Java数据库连接(JDBC)API3. Java多线程API…

企业全渠道营销终极指南

客户不再在单一的渠道购物,渠道跳跃正在成为全球流行的消费者购物行为。他们用多种渠道与品牌互动,包括社交媒体、电子邮件等,这迫使企业必须采用全渠道营销策略来满足客户不断变化的需求,为客户提供个性化的体验,提高…

客户支持工具从被动到主动的演变

在当日新月异的商业环境中,企业需要适应不断增长的客户需求,优质的客户支持变得越来越重要。客户支持工具从传统系统到尖端 AI驱动解决方案的演变具有变革性,增强了主动和无缝的支持体验。所以,使用正确的客户服务工具很重要&…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第三十九天 39/50【二分】【二叉搜索数第k个节点】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

XRCameraSubsystem浅析

在使用ARFoundtion 4.2.8版本,要获取相机图像,还是通过ARCameraManager获取的。 大概的调用流程: 1. 应用脚本获取ARCameraManager对象,默认是挂在AR Camera下,向其注册回调函数。 2. ARCameraManager里会在每次Upd…

TortoiseSVN操作使用

说明 SVN常用于程序代码版本控制,由于业务需求需将生产资料通过SVN进行管控,涉及人员众多,权限分支管理需要细化,特此记录SVN的学习操作. 前言 版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改, 然…

干货 | 电路设计中如何减少ESD?

干货 | 电路设计中如何减少ESD? 今天给大家分享的是:在电路设计和PCB设计如何防止ESD损坏设备。 在电子行业中,保护设备免受ESD损坏是必须要注意的。静电放电(ESD)是一种非常高的电压尖峰,很容易损坏集成电…

【C++】STL中stack,queue容器适配器的模拟实现(使用deque容器)

文章目录 前言一、deque的一些基本知识相比vector:相比list:3为什么选择deque作为stack和queue的底层默认容器 二、stack模拟实现三、queue的模拟实现 前言 STL标准库中stack和queue的底层结构 :虽然stack和queue中也可以存放元素&#xff0c…

vue的组件化编程的详细讲解加代码演示

😀前言 本片文章是vue系列第5篇整理了vue的组件化编程的详细讲解加代码演示 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力&am…

leetcode 53. 最大子数组和

2023.7.28 要求找最大和的 连续子数组, 我的思路是用一个temp记录局部最优值,用ans记录全局最优值。 然后在每次for循环进行一个判断:当前遍历元素temp值 是否大于当前遍历元素的值,如果大于,说明temp值是帮了正忙的&a…

第12章 Linux 实操篇-Linux磁盘分区、挂载

12.1 Linux 分区 12.1.1 原理介绍 (1) Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构, Linux中每个分区都是用来组成整个文件系统的一部分。 (2) Linux采用了一种叫“载入”的处理方法,…

临床医学怎样翻译比较 好

近年来,随着不同国家之间医药行业形成的共同研究趋势,临床翻译对于来自不同国家的医疗人员的合作至关重要。那么,临床医学怎样翻译比较 好,北京哪个翻译公司比较专业? 据了解,临床医学翻译包含患者病历记录…

selenium自动化-获取元素属性信息

在写自动化过程中我们会想验证自己的代码是否正确,比如登录之后,通过用户名或其他信息来证明你登录成功,或者点击链接后,是否会跳转新的页面。通过获取元素属性信息,可以解决我们的疑惑。 一、获取内容对象的内容信息 …

专题-【排序比较】

时间最好:直接和冒泡,n 堆排序和归并时间固定:nlog2n 空间:归并,n;快速,log2n 稳定:直冒归基

Spring 6【Resources资源和资源加载】(九)-全面详解(学习总结---从入门到深化)

目录 Resources资源和资源加载 Resources资源和资源加载 1.为什么要讲解Resources 在Java中 java.net.URL类是统一资源定位符的抽象,主要用于描述互联网上资源的一个字符串。一般语 法为: scheme:[//authority]path[?query][#fragment] 例如&#…

JavaScript学习 -- HMAC算法基本原理

HMAC(Hash-based Message Authentication Code)算法是一种基于哈希算法的消息认证码算法。它可以用于验证和保护数据在传输过程中的完整性和真实性。在JavaScript中,我们可以使用HMAC算法来保证数据的安全性。本篇文章将介绍HMAC算法的基本原…

超详细三子棋(保姆级教学)

超详细三子棋(保姆级教学) 一、模块化程序设计(多文件编程)介绍1.概述2.传统编程的方式3.模块化程序设计的方法二、三子棋(含多子棋)代码设计思路三、三子棋代码设计1.创建菜单函数2.实现多子棋3.棋盘初始化4.打印棋盘格式5.玩家下…

使用express搭建后端服务

目录 1 创建工程目录2 初始化3 安装express依赖4 启动服务5 访问服务总结 上一篇我们利用TDesign搭建了前端服务,现在的开发讲究一个前后端分离,后端的话需要单独搭建服务。后端服务的技术栈还挺多,有java、php、python、nodejs等。在众多的技…

hbase(1)-基础

1、hbase产生背景 hadoop只能执行批量处理,并且只能以顺序方式访问数据,这意味着即使最简单的搜索工作,也必须搜索整个数据集。那么当处理一个庞大的数据集,也是按照顺序处理一个巨大的数据集。 基于上述hadoop的限制&#xff0…