转储文件知多少 发表于 2019-12-21 | 更新于: 2019-12-21 | 分类于 转储 字数统计: | 阅读时长 ≈ 分钟 前言之前分享过几篇调试的文章,在那几篇文章里,我主要是在分析转储文件(也叫 dump 文件,或简称 dump),而不是实时调试。通常,程序发布后,我们很难有机会做实时调试。我们做的最多的是事后调试。能否抓到有效的转储文件对我们分析问题至关重要。 你知道什么是转储文件吗? 你知道什么时候应该抓取转储文件吗? 你抓取过转储文件吗? 你知道怎么抓取转储文件吗? 你知道几种抓取转储的方法呢? 如果你对以上问题感兴趣,那么请继续阅读吧。 阅读全文 »
调试实战 | 程序 CPU 占用率飙升,你知道如何快速定位吗? 发表于 2019-12-14 | 更新于: 2019-12-14 | 分类于 调试 , 调试案例 字数统计: | 阅读时长 ≈ 分钟 前言如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环。你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助。 阅读全文 »
神兵利器 | 你知道怎么使用 DebugView 查看内核调试信息吗? 发表于 2019-12-12 | 更新于: 2019-12-12 | 分类于 排错 字数统计: | 阅读时长 ≈ 分钟 简介DebugView是sysinternals工具集中的一款用来查看调试信息的工具。不管你是内核开发人员还是应用程序开发人员,都会用到这款神器。先简单看看DebugView可以干什么吧。 可以查看应用程序输出的调试信息。 可以查看驱动程序输出的调试信息。 可以查看本地机器的调试信息。 可以查看远程机器的调试信息。 可以根据规则高亮显示。 可以根据关键字过滤。 可以根据关键字搜索。 可以自动显示最新一条记录。 …… 功能太多太全了,有木有?!心动了吗? 快跟我一起来了解下这个神器吧。 阅读全文 »
Ignite Beijing 2019你参加了吗?多图,慎点! 发表于 2019-12-10 | 更新于: 2019-12-10 | 分类于 技术会议 字数统计: | 阅读时长 ≈ 分钟 前言第一次参加微软技术大会。之前对微软技术大会有太多遐想,今天终于亲身参与其中了。现在,终于有时间回顾下今天的 Ignite之旅了(全称是 Microsoft Ignite The Tour)。特记流水账一篇,以纪念我的第一次。 阅读全文 »
排错实战 | 你知道拖动窗口时只显示虚框怎么设置吗? 发表于 2019-12-05 | 更新于: 2019-12-05 | 分类于 排错 字数统计: | 阅读时长 ≈ 分钟 前言不知道大家有没有留意过,我们在拖动窗体的时候,有时候显示的是虚框,有时候显示的是窗体内容。可能有的朋友不是太明白,没关系,一图胜千言。请看图: 阅读全文 »
调试实战 | 使用 windbg 调试崩溃在 ole32!CStdMarshal::DisconnectSrvIPIDs 发表于 2019-11-28 | 更新于: 2019-11-28 | 分类于 调试 , 调试案例 字数统计: | 阅读时长 ≈ 分钟 前言最近程序会不定期崩溃,很是头疼!今晚终于忍无可忍,下决心要干掉它!从之前的几个相关的dump可以猜到是有接口未释放导致的问题,但没有确认到底是哪个接口。本篇总结记录了找到这个接口的过程。 阅读全文 »
排错实战 | VS清空最近打开的工程记录 发表于 2019-11-24 | 更新于: 2019-11-24 | 分类于 开发 , vs 字数统计: | 阅读时长 ≈ 分钟 缘起vs有一个功能 —— 在起始页会显示最近打开的工程列表,方便用户快速打开之前打开过的工程文件。但是打开的工程文件多了,想要找到自己需要的工程文件也不是那么容易的,要是能把之前打开的记录都清理干净该有多好啊。本文记录了我在查找vs2019相关设置存储位置的调查过程 。对于vs2017以前的版本,对应的设置是保存在注册表中的,从vs2017开始,不再保存在注册表,而是存储在本地配置文件中。到底存储在哪里了呢?我们一起来看看吧! 阅读全文 »
调试实战 | 使用 windbg 调试崩溃在 ComFriendlyWaitMtaThreadProc 发表于 2019-11-17 | 更新于: 2019-11-17 | 分类于 调试 , 调试案例 字数统计: | 阅读时长 ≈ 分钟 前言这是几年前在项目中遇到的一个崩溃问题,崩溃在了ComFriendlyWaitMtaThreadProc()里,没有源码。耗费了我很大精力,最终通过反汇编并结合原代码才最终搞清楚了事情的来龙去脉。本文的分析还是基于真实项目进行的,中间略去了很多反汇编的分析工作。文末有我整理的测试代码,大家可以实际体验一把TerminateThread()的杀伤力。 阅读全文 »
排错实战 | 通过对比分析 sysinternals 事件修复程序功能异常 发表于 2019-11-16 | 更新于: 2019-11-16 | 分类于 排错 字数统计: | 阅读时长 ≈ 分钟 缘起最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的。代码是同一份,vs版本也一样(打的补丁也一样)。编译出来的程序在两台电脑上运行的结果就是不一样。惊不惊喜,意不意外?如果是你遇到了这种情况,你会怎么调查呢?:upside_down_face: 阅读全文 »
排错实战 | 解决 Tekla 通过 .tsep 安装插件失败的问题 发表于 2019-11-12 | 更新于: 2019-11-12 | 分类于 排错 字数统计: | 阅读时长 ≈ 分钟 缘起最近同事使用.tsep安装Tekla插件的时候,Tekla提示该插件已经存在了,需要卸载后再安装。同事找了半天,没找到怎么卸载,我也没找到。于是决定弄清楚Tekla是 如何判断一个插件安装与否的。 想必看过我其它排错文章的小伙伴已经猜到了,我们今天文章中的主角依然是process monitor。好了,话不多说,好戏马上开始。 阅读全文 »