摘要: 有趣的异常原总结调试异常stackoverflowvs 缘起 最近,在项目中遇到一个有趣的异常。在没附加调试器的情况下会直接崩溃。附加调试器后,会中断到调试器中,但是按 F5 继续运行后,程序还能继续执行。 interesting !你能猜出这是个什么异常吗? <!--more--> 初遇错误 在测 阅读全文
posted @ 2020-11-03 09:45 BCN 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 再分享 5 个 vs 调试技巧原总结调试vs2019vs技巧 前言 之前在 《5 个非常实用的 vs 调试技巧》 和 《继续分享 5 个实用的 vs 调试技巧》中分享了 10 个我认为非常值得了解的 vs 调试技巧,本周继续分享 5 个很实用的调试技巧。 <!--more--> 1. 显示下一条语句 阅读全文
posted @ 2020-11-03 09:43 BCN 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 使用 windbg gflags dumpbin 排查应用程序启动错误原排错debug调试troubleshootdependency walkerdumpbinwindbggflags总结 缘起前一阵子,更新完依赖库后,启动程序报错了。这已经不是第一次报错了。so…… let's dig in! 初遇错误更新完依赖库,编译通过后,高高兴兴的在 vs 中使用 ctrl + F5,没想到却遇到... 阅读全文
posted @ 2020-09-28 14:01 BCN 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 你很可能需要知道这个调试小技巧原调试debugvsnatvis总结 缘起最近在调试的时候,需要观察第三方容器中每一个元素的值。默认情况下,vs 并不知道如何显示第三方容器的内容,只能手动观察容器中的每一个值,超级不方便。我找到一个非常给力的好办法,你还知道其它好办法吗?为了更直观的感受这种便利,我特意截图对比了三种常用的观察变量的方法。 直接观察1、通过 vs 的悬浮提示观察。小贴士:把鼠标... 阅读全文
posted @ 2020-09-16 15:23 BCN 阅读(338) 评论(0) 推荐(0) 编辑
摘要: c++ 有趣的动态转换之 delete 崩溃探究兼谈基类虚析构的重要性原调试debugvsc++dynamic_castcrashdeletestack 前言在《有趣的动态转换》 这篇文章中,运行 测试代码3 会崩溃。本文试图揭示崩溃的原因。 错误更正在开始之前,需要更正《C++ 虚函数简介》中的一个错误。关于 CBase 和 CDerived 的虚表内容,析构函数的位置并不是直接存储了虚函... 阅读全文
posted @ 2020-09-16 15:17 BCN 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 有趣的动态转换原调试debugvsc++dynamic_castcrash 缘起最近,在项目代码中看到一个非常神奇的类型转换—— 类型A 的指针居然能动态转换成另外一个完全没有任何关系的类指针。这…… 完全颠覆了我的认知。为了进一步了解这个神奇的操作,我特意模拟了项目代码中的情形,一起来看看吧。 代码简介BaseA 和 BaseB 是两个基类,NewA 继承自 BaseA,NewB 继承自 ... 阅读全文
posted @ 2020-09-16 15:15 BCN 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在 tortoisegit 执行 commit 会跳过暂存区直接提交到仓库中吗? 原调试debug排错troubleshootprocess monitorsysinternalsautoruns 缘起 之前与同事交流 git 时,简单介绍了 git shell 和 tortoisegit (戏称 阅读全文
posted @ 2020-08-31 16:30 BCN 阅读(833) 评论(0) 推荐(0) 编辑
摘要: WindowsSdkDir 从何处来?原排错调试vssdk 缘起在《修复被破坏的 vs 工程设置》和《修复被破坏的 vs 工程设置(续)》这两篇文章中,分享了调查 VS 包含路径错误的问题,感兴趣的小伙伴儿可以查看。依稀记得在 2013 年的时候调查过类似的问题。前一阵子没翻到,这两天在翻笔记的时候居然意外的找到了。特整理分享给大家。依稀记得是编译的时候有问题才调查的。 查看 Windows... 阅读全文
posted @ 2020-08-27 08:56 BCN 阅读(1206) 评论(0) 推荐(0) 编辑
摘要: 一次简单的服务器 cpu 占用率高的快速排查实战原svchost病毒服务器cputrouble shoot排错前两天,朋友遇到一个线上 cpu 占用率很高的问题,我们俩一起快速定位并解决了这个问题。在征求朋友同意后,特发此文分享整个过程。本文以对话的形式展开,加上我的内心独白。文中对话与实际对话略有出入。友: 在吗?我: 怎么了兄弟?友: 这边有一台服务器客户说 cpu 占用率高,怀疑挖矿了。我... 阅读全文
posted @ 2020-08-11 13:29 BCN 阅读(1636) 评论(0) 推荐(0) 编辑
摘要: 修复被破坏的 vs 工程设置原排错调试vsbcginclude path 缘起前几天打开工作项目进行编译,没想到居然报错,明明前一天编译还正常的。简单排查后,临时修复了问题。但是今天新建工程时居然还有相同的问题,是可忍熟不可忍?本文记录了排查过程,希望对各位小伙伴儿有帮助。话不多说,上菜。 初遇错误不方便使用实际工程截图,就用我新建的测试工程吧,提示的错误是一样的。compile-error... 阅读全文
posted @ 2020-08-11 13:28 BCN 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 修复被破坏的 vs 工程设置(续)原排错调试vsbcginclude path 缘起在上一篇文章——《修复被破坏的 vs 工程设置》中,我分享了修复被破坏的 vs 工程设置的实战。本以为圆满解决了问题,没想到另有玄机。所以又来分享一篇刨根问底的文章。 查看文件打开 Microsoft.Cpp.Win32.user.props 一看,里面并没有任何有用的内容!如下图:Microsoft.Cpp... 阅读全文
posted @ 2020-08-11 13:28 BCN 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 继续分享 5 个实用的 vs 调试技巧 原总结调试vs2019vs 前言 我在上一篇文章《5 个非常实用的 vs 调试技巧》 中分享了 5 个我认为非常值得了解的 vs 调试技巧,本周继续分享 5 个很基础但同样实用的调试技巧。 1. 条件断点 作用简介: 顾名思义,带条件的断点。满足条件才中断。条 阅读全文
posted @ 2020-07-20 06:53 BCN 阅读(442) 评论(0) 推荐(1) 编辑
摘要: 5 个非常实用的 vs 调试技巧原总结调试vs2019vs 前言调试是一项非常重要的技能,熟练掌握调试技巧有助于我们快速解决问题。vs 是我们平时编写代码时的首选工具,相信也是大多数小伙伴儿的首选调试工具,因为实际操作起来太方便了,代码编写完,一个 F5 就可以愉快的调试了。今天我想向大家推荐几个非常值得了解 vs 调试技巧。话不多说,我们开始吧。 并行堆栈作用简介:我们可以通过调用堆栈窗口... 阅读全文
posted @ 2020-07-12 22:28 BCN 阅读(1668) 评论(0) 推荐(1) 编辑
摘要: 神秘的 _DEBUG 宏从何处来?原调试debugwindbgvsdllcrash崩溃全局变量 缘起在上一篇文章 《调试实战 —— dll 加载失败之Debug Release争锋篇》中,由于两个工程中的 _ITERATOR_DEBUG_LEVEL 不同,导致了对同一个 map 的解析不同,从而导致了崩溃。在示例代码中,我是手动更改的该宏的值,在实际工程中,却另有玄机。在上文中故意省略了这部分... 阅读全文
posted @ 2020-06-21 21:34 BCN 阅读(2426) 评论(0) 推荐(5) 编辑
摘要: 调试实战 —— dll 加载失败之 Debug Release 争锋篇原调试debugwindbgvsdllcrash崩溃全局变量 缘起最近,项目里遇到一个 dll 加载不上的问题。实际项目比较复杂,但是解决后,又是这么的简单,合情合理。本文是我使用示例工程模拟的,实际项目中另有玄机,但问题的本质是一样的。本文从行文上与 《调试实战 —— dll 加载失败之全局变量初始化篇》 非常相似,示例... 阅读全文
posted @ 2020-06-13 21:35 BCN 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 全局变量初始化顺序探究原vsprocess monitor全局变量 缘起我在上一篇文章——《调试实战 —— dll 加载失败之全局变量初始化篇》中,跟大家分享了一个由于全局变量初始化顺序导致的 dll 加载失败的例子。感兴趣的小伙伴儿可以点击阅读。虽然我们知道了是由于全局变量初始化顺序导致的问题,也给出了解决方案。但是有一点却没有刨根问底——为什么改变文件在工程文件中的顺序就可以改变全局变量初... 阅读全文
posted @ 2020-05-31 22:34 BCN 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 调试实战 —— dll 加载失败之全局变量初始化篇原调试debugwindbgvsdllcrash崩溃全局变量 前言最近项目里总是遇到 dll 加载不上的问题,原因各种各样。今天先总结一个虽然不是项目中实际遇到的问题,但是却非常经典的问题。其它几种问题,后续慢慢总结。示例代码包含一个 exe 工程,两个 dll 工程。 exe 会加载两个 dll 并调用它们的导出函数(GetCallCount... 阅读全文
posted @ 2020-05-29 12:57 BCN 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 10 个实验搞懂命令提示符原总结基础win10cmd命令行process monitor 前言相信,很多小伙伴儿都在命令提示符中执行过 ipconfig 查看 ip 信息。我们还可以执行 ping ip 来 ping 对应的 ip 地址,执行 notepad 启动记事本,执行 explorer 启动文件管理器……但是,你好奇过背后的运作机制吗?为什么输入几个简单的几个字母就能启动外部程序,本... 阅读全文
posted @ 2020-05-18 06:44 BCN 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 帮 vs2019 找回丢失的 SDK 原总结排错process monitorvs2019sdk 缘起 前一段时间,有网友遇到一个奇怪的问题,说他机器上的 vs2019 编译 C++ 工程报错。我当时一听就有两个怀疑: 工程设置不对。 vs2019 没装好。 因为新建一个最简单的工程,编译也报一样的 阅读全文
posted @ 2020-05-18 06:40 BCN 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 原总结调试windbg转储 前言前一阵子,使用小乌龟(TortoiseGit)提交代码的时候,错误的 Revert 了部分代码,本文记录了找回这部分代码的过程。文章标题致敬张银奎老师《格蠹汇编》的第一章 —— 从堆里抢救丢失的博客。说明: 本文的截图都是我用新建的示例工程截取的。 缘起最近,程序运行的时候,执行某个功能会崩溃,根据经验猜测,应该是序列化,反序列化的问题。由于手里没有关键的 p... 阅读全文
posted @ 2020-05-01 06:45 BCN 阅读(243) 评论(0) 推荐(0) 编辑