BianChengNan's Blog

Coding is hard, you can make it easy!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

这个崩溃,有点意思

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

缘起

前几天,在加班赶进度时遇到了一个意想不到的崩溃。由于是新加的代码导致的问题,所以很快就定位到了问题代码。但是,看了好几遍也没看出问题在哪?虽然代码在逻辑上有漏洞——某些情况下没有返回值,但是在我的认知里,应该不会导致崩溃。本文记录了使用 IDA 静态分析反汇编代码定位这个问题的过程。

阅读全文 »

排错实战 | 记一次有教益的焦点窗口查找过程

发表于 2022-08-28 | 更新于: 2025-12-13 | 分类于 排错
字数统计: | 阅读时长 ≈ 分钟

缘起

前一阵子,同事遇到了一个诡异的 bug,新版本发出来后之前运行好好的功能不好使了。原来的逻辑是:点击板上某个埋件的时候,会弹出四个定位编辑框,其中的一个编辑框需要获得焦点,方便用户直接修改,按 tab 会切换到下一个编辑框。但是新程序的行为发生了变化——点击埋件的时候,四个编辑框没有一个获得焦点。本文记录了使用 spyxx 和 accevent.exe 定位此问题的过程。

阅读全文 »

排错实战 | 授权码不知道被谁占用了?不可能的,这辈子都是不可能的

发表于 2022-07-31 | 更新于: 2025-12-13 | 分类于 排错
字数统计: | 阅读时长 ≈ 分钟

缘起

相信大家应该都接触过授权码。我们开发时用的程序也需要授权码才能使用,而且一个授权码每次只能在一台机器上激活。当授权码被占用时,会提示授权被某某机器占用了,只有占用授权码的同事迁出后,其它同事才能用。由于某些同事的机器名是随机的字符,不能很快知道是哪位同事在占用授权码。每次遇到授权码被占用的情况,只能在公司群里问,效率特别低。于是,我提意大家把机器名改成自己名字缩写,这样就可以直接知道是哪位同事在占用授权码。万万没想到,单纯修改机器名不好使。不好使是不可能的,这辈子都不可能的。安排!

阅读全文 »

调试实战 | 记一次有教益的内存碎片转储文件分析

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

前言

其实,这篇文章早在 2021 年就完成了初稿,后面一直没来得及完善(各种加班各种忙),所以一直没来得及整理发布。而且,我从这个案例里学到的东西太多了,很多内容并没有体现在本篇文章中,后续有机会一定会再写文章分享。话不多说,一起来看正文吧。

阅读全文 »

有意思的警告:c4551 function call missing argument list

发表于 2022-06-26 | 更新于: 2025-12-13 | 分类于 vs
字数统计: | 阅读时长 ≈ 分钟

缘起

这个端午节又在加班改 bug,没想到改了一个长见识的 bug。因为是过节,而且卷了一天确实有些累,没打算刨根问底。本想简单跟客户沟通一下错误代码是如何引入的。没想到客户对这个问题比较感兴趣,想把砂锅打破。好吧,恭敬不如从命。

阅读全文 »

难说 | 看来我还没有入门 CPP

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

前言

5 月 18 日参加了 Incredibuild 与博览网联合举办的主题为 《深入解析 20 个 c++ 典型输入错误》的线上研讨会。主要讲解了 20 个 C++ 中的典型错误。本以为作为一个 c++ 老鸟,做这些题应该问题不大吧?您猜怎么着?20 道题,我可能没做对 5 道题目。汗!!!

话不多说,请看题。

阅读全文 »

排错实战 | 记一次 pugixml 编译错误的解决

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

缘起

前一阵子,平台在换基线,底层接口变了很多,因此引出了至少 20000 个编译错误。在加班改完这些编译错误后,没想到又遇到了一个诡异的编译错误。而且之前还解决过类似的编译错误,但是这次却没能第一时间找出罪魁祸首。一起看看这是一个什么编译错误吧。

阅读全文 »

难说 | 读了几本书

发表于 2022-05-06 | 更新于: 2025-12-13 | 分类于 reading
字数统计: | 阅读时长 ≈ 分钟

前言

好久没在这个号上发表文章了,今天听群友说微信开放了私信功能,赶紧来试试。欢迎私信。

阅读全文 »

调试实战 | 使用 IDA 和 windbg 调试 LNK1123 转换到 COFF 期间失败:文件无效或损坏(下)

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

前言

在前面两篇文章中(这里,这里)总结了使用 windbg 和 IDA 找出 cvtres.exe 报错的根本原因,并把一些细节问题弄清楚了。但是还剩下一个小细节没有深究 —— 如果启动 cvtres.exe 的时候没有指定全路径,windbg 会报系统找不到指定的文件的错误。当时只是根据经验判断需要使用完整路径,但是为什么只使用文件名不行呢?今天就把这个问题也格尽。

说明: 写完本文,我犹豫了很久要不要发表出来。因为这个问题其实很简单(在设置 PATH 环境变量时,路径多加了双引号)。但是当时的我真的是当局者迷,完全没意识到这个问题,导致花费了很长时间。process monitor,gflag,IDA,windbg,轮番上场,甚至都调试起 windbg 来了(嗯,你没看错,不是用 windbg 调试,而是调试 windbg),好一阵忙活,中间还走了很多弯路(自以为是的在错误的函数中下断)。最后幡然醒悟,原来真理就在那躺着,静静的等着被发现。

之所以决定发出来有几点原因:

  1. 介绍了让进程自动中断到调试器中的方法,甚至是让一个调试器自动中断到另外一个调试器中的方法。
  2. 介绍了只对特定线程设置断点的方法、使用 wt 追踪函数调用的方法等。
  3. 提醒自己,在调试过程中一定要保持清醒的头脑。

没耐心的朋友直接跳到最后即可。

阅读全文 »

难说 | 程序员的品味

发表于 2022-03-21 | 更新于: 2025-12-13 | 分类于 难说
字数统计: | 阅读时长 ≈ 分钟

缘起

代码里有很多值得商榷的写法。今天来发点牢骚。

阅读全文 »
1…456…14
BianChengNan

BianChengNan

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