十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得

这篇具有很好参考价值的文章主要介绍了十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得

十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言

第一个bug是内存问题,程序直接崩溃,问题出现在:GetOneSpan函数中的切分span的时候结尾的span1的next没有置空。
十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言

第二个bug是还小内存块给span的时候找不到小内存所属的span,原因是NewSpan函数中的一个if分支返回前没有把id和span*的映射关系存好。
修bug前:
十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言
修bug后:
十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言
第三个bug出现在释放内存的判断条件上,自己定义的变量MAX_BYTES和C++库里面定义的一个宏MAXBYTES混到了一起,本来是用自己定义的这个MAX_BYTES变量作为判断条件的,但是手误写成了C++库中的宏MAXBYTE,导致释放内存的时候出现了很严重的问题,这个bug调试了三天才调试出来,真的很坑。
修改bug前:
十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言

修bug后:

十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得,高并发内存池项目(TCmalloc--mini版),bug,c++,c语言,windows,visual studio,开发语言

我在调上述bug的时候所用的技巧:
1、首先用屏蔽法,先判断是那一段逻辑出现问题,比如先屏蔽内存池释放的逻辑,看看程序是否能正常运行,如果能则说明就是释放的逻辑出了问题,再对释放的逻辑使用屏蔽法排查。
2、在确定了大概是哪一段逻辑出现问题之后可以利用条件断点查看运行到某一个地方的时候的结果是否符合预期。
3、可以查看调试中的调用堆栈查看函数的调用情况。
4、在调试过程中发现疑似死循环的时候可以点击中断程序查看。

以上是一些很实用的调试技巧,但是调试程序最终还是要逐步看,逐步分析结果,一定要细心分析才能调出bug。由于这个项目都是内存分配的问题,出现bug非常不好查,总之一句话,写的时候认真认真再认真,重要的事情说三遍,不然一个bug够你调3天的了。

那这个项目就到此为止了,你做得怎么样呢?做的过程中有没有遇到过什么bug呢?如果有,你是怎么解决的呢?不妨来评论区留言一下,让更多的小伙伴能够早早避坑吧!!!文章来源地址https://www.toymoban.com/news/detail-695442.html

到了这里,关于十一、做高并发内存池项目过程中遇到的bug以及调试bug的方法和心得的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于一个C++项目:高并发内存池的开发过程(二)

    上篇文章梳理了内存申请操作的流程,大概测试了一下,没有发现什么问题。这篇文章将梳理内存释放操作的流程,若申请操作中,有些细节没有把控好,那么释放操作将bug不断。有些bug我至今还在调试…所以,这篇文章的梳理,侧重点依然是逻辑结构。代码的细节可能存在

    2024年02月05日
    浏览(71)
  • DevC++ easyx实现悬浮窗放入网格,与在函数分离过程中遇到的BUG下理解 函数的作用时域 以及 初始化与复位的关系。

    这次就着上上上篇的悬浮窗代码DevC++ easyx实现图片拖动,一种悬浮窗实现原理与完整代码-CSDN博客 继续实现效果。 基本背景是搓出来图片拖动了,然后想把图片暂存到另一块。再细说背景的背景就是之前提到Unity复刻瓦片地图,想着整合一个铅笔绘制功能,就是绘制瓦片和瓦

    2024年02月03日
    浏览(49)
  • 我的第一个项目(十一) :飞机大战分包完成(简单阐述分包思路以及过程)

    好家伙,   代码已开源 Git: https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git NPM: panghu-planebattle-esm - npm (npmjs.com)   现在,比如说,我用Vue写好了个人博客主页的前端 我想在这个主页里面加点东西,让我的博客更缤纷多彩一点 我想在他的主页里面塞个小游戏,他会怎么做   如下

    2023年04月18日
    浏览(46)
  • 新建vite+vue3+ts项目,以及解决过程中遇到的问题

    目录 一、新建vite+vue3+ts项目 二、解决过程中遇到的问题 解决报错:Module ‘“xx.vue“‘ has no default export. 解决报错:Error [ERR_MODULE_NOT_FOUND]: Cannot find package ‘uuid’ imported from xxx的解决 解决报错:[plugin:vite:css] Preprocessor dependency \\\"less\\\" not found. Did you install it? 此处我使用npm做一下

    2024年02月06日
    浏览(135)
  • 小爬虫项目遇到的bug

    项目背景是这样的, 三个请求数据的接口,是标准的 JWT 认证,提前五分钟刷新token,这个操作是在每次请求数据之前都会进行的检查。 业务场景是这样的: 每个账号都需要请求三个接口,为了简单就做成了定时任务的模式,所以每个账号下就会有三个任务,每次刷新完to

    2024年02月08日
    浏览(47)
  • 关于uniApp自定义配置的底部的tabBar配略解, 以及会遇到的bug若干

    首先, 想要自定义tabBar 有两种方法, 可以自己去编写一个tabBar导航栏, 但是性能不会比原生高, 第二种, 使用  uni.setTabBarItem 这是配置项, 有两个注意点,  pagePath 的路径配置和 pages.json 有所不同, 需要加上代表绝对路径的  /  如下 , index代表需要替换的tabBar数组位置, 其余配置一

    2024年02月04日
    浏览(45)
  • 开发过程中遇到的问题以及解决方法

    巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 简单易用的git命令 git命令: 查看有几个分支:git branch -a 切换分支:git checkout 分支名称 下载项目:git clone url 拉取项目:每次提交代码之前都需要,相当于更新代码

    2024年02月13日
    浏览(47)
  • Jenkins Pipline使用SonarScanner 检查 VUE、js 项目 中遇到的Bug

    在 Jenkins 上使用 Pipline 进行集成,利用 SonarScanner 做静态代码扫描的过程中,遇到了几个问题,这里记录了一点解决办法。 自动安装 SonarScanner 插件,在 Pipline 脚本中使用官方 wiki 中说明的脚本: 但是在扫描的时候总是报错,可以看出是语法错误: 因为在 stage 里面不是用

    2024年02月16日
    浏览(49)
  • OpenMediaVault 6.x 配置网络的过程以及遇到的问题

    1.1总结 U盘安装OMV以后,尽管在安装页面中配置了网络,但是这个配置不会保留在系统当中,进入系统后需要重新配置。 第一次系统的后,在 /etc/network/interfaces 配置网络。 如果在Web管理页面中对网络进行了修改, /etc/network/interfaces 的网络配置会失效,需要重新配置网络,这

    2024年02月03日
    浏览(40)
  • 【项目设计】高并发内存池(五)[释放内存流程及调通]

    🎇C++学习历程:入门 博客主页: 一起去看日落吗 持续分享博主的C++学习历程 博主的能力有限,出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记,树🌿成长之前也要扎根,也要在漫长的时光🌞中沉淀养分。静

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包