BianChengNan's Blog

Coding is hard, you can make it easy!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

shared_ptr能和基于引用计数的智能指针混用吗?

发表于 2020-12-13 | 更新于: 2025-12-13 | 分类于 开发
字数统计: | 阅读时长 ≈ 分钟

前言

我在上一篇文章中介绍了几种误用智能指针的例子。还有一种比较典型,就是混用两种类型的智能指针。直接看代码吧!

阅读全文 »

奇怪的链接错误 LNK1104

发表于 2020-12-06 | 更新于: 2025-12-13 | 分类于 开发 , 工具
字数统计: | 阅读时长 ≈ 分钟

缘起

一般情况下链接错误很好解决,最常见的是重定义和找不到外部符号,不过这次遇到的链接错误有些奇怪,一起来看看吧。

阅读全文 »

智能指针避坑指南——几种常见的错误用法

发表于 2020-11-29 | 更新于: 2025-12-13 | 分类于 开发
字数统计: | 阅读时长 ≈ 分钟

前言

智能指针的出现大大减轻了 C++ 程序员的心理负担(最少对于我是这样的),不用再时时刻刻担心一个 new 出来的指针是否被 delete 的问题了。虽然智能指针很强大,但是如果用不好,还是会导致各种各样的问题。最近,在项目里看到了几种智能指针的典型错误用法。有的严重,有的轻,有的问题在研发阶段并没有立刻暴露出来,埋下了一颗定时炸弹。趁着这个机会,总结一下几种常见的错误用法。希望对各位小伙伴儿有帮助。

阅读全文 »

栈大小可以怎么改?

发表于 2020-11-22 | 更新于: 2025-12-13 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

缘起

前一段日子,遇到了好几个栈溢出异常,相关文章可以点击 这里、 这里 和 这里。解决栈溢出,一般可以从两个方面进行处理。简而言之就是:开源节流!

开源 就是增大栈尺寸。节流 就是减少不必要的内存占用。解决栈溢出,正统的方法是减少内存占用(比如,尽量按引用传递参数)。但是有些情况下了解如何增大线程栈尺寸也非常有必要,可以应急!本文介绍几种增大栈尺寸的方法。

阅读全文 »

server03 从源码到镜像

发表于 2020-11-15 | 更新于: 2025-12-13 | 分类于 教程
字数统计: | 阅读时长 ≈ 分钟

前言

最近跟着国外大佬的视频,从头到尾编译了一遍 server2003。特地把整个过程录制了下来,记录了把 server2003 源码打包成镜像的完整过程,主要分为:环境搭建,编译,验证三个部分。

本文及视频仅用于技术交流,请勿用于非法用途。如有侵权,请联系我删除。

阅读全文 »

有趣的"内存泄漏"

发表于 2020-11-14 | 更新于: 2025-12-13 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

说明

今天的文章比较短,基本上全在视频里了。

这是一份有意思的 “内存泄漏” 视频。加上引号是因为虽然可以称作内存泄漏,但是又算不上真正意义上的内存泄漏。因为虽然短时间内内存暴增,但终归还是能释放掉的。

其实,这个 “内存泄漏” 背后隐藏着一个序列化/反序列化的 bug。很早之前就碰到了这个问题,只不过当时并没有录下来。当时的情况比现在更加明显——内存很快的从 1 GB 增长到 5 GB 左右,然后再释放掉,再增长,再释放,如此往复。不像这次,增长到 4 GB 多的时候,会有一个比较长的停留,然后才释放。

这个问题的根本原因是序列化与反序列化不匹配导致的。在特定环境下定位并解决这种问题是相对容易的,因为问题范围很小,而且对相关源码比较熟悉。具体排除过程没什么好说的。

其实,定位这种问题可以像我在视频里那样用 process explorer 的线程查看功能,粗略查看一下原因。运气好的话,基本可以很快定位。

话不多说,欣赏视频吧!注意视频中红色箭头和红色方框高亮的部分。

栈局部变量优化探究,意外发现了 vs 的一个 bug ?

发表于 2020-11-08 | 更新于: 2025-12-13 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

缘起

我在《栈又溢出了》 一文中记录了一个奇怪的栈溢出问题。虽然解决了,但是总感觉哪里不太合理。我想,vs 一定有一个合理的设置。一起折腾起来吧!

阅读全文 »

栈又溢出了

发表于 2020-10-31 | 更新于: 2025-12-13 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

缘起

最近,项目代码再次出现了栈溢出问题。这次的栈溢出跟上次有点不同,调用栈不深,而且报错的时候函数代码还没开始执行。是不是有点“诡异”?一起来看看这次是什么原因导致的吧。

阅读全文 »

let's make dependency walker fast again

发表于 2020-10-24 | 更新于: 2025-12-13 | 分类于 工具
字数统计: | 阅读时长 ≈ 分钟

缘起

最近,经常需要调查 dll 加载失败的问题。前一阵子刚分享了一篇,感兴趣的小伙伴而可以点击 这里。相信,有 windows 开发经验的小伙伴儿一定听过 Dependency Walker 这款工具,它可是查看模块依赖关系的神兵利器。但是在我的机器上,Dependency Walker 运行的特别慢,经常无响应!慢了这么久,是时候提提速了。

阅读全文 »

有趣的异常

发表于 2020-10-18 | 更新于: 2025-12-13 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

缘起

最近,在项目中遇到一个有趣的异常。在没附加调试器的情况下会直接崩溃。附加调试器后,会中断到调试器中,但是按 F5 继续运行后,程序还能继续执行。 interesting !你能猜出这是个什么异常吗?

阅读全文 »
1…789…14
BianChengNan

BianChengNan

140 日志
34 分类
227 标签
RSS
GitHub 知乎 博客园
© 2019 — 2025 BianChengNan | 全博客共 字
0%