DotTrace系列:9. 大结局之 跨平台 和 自定义行为 诊断-牛翰网

DotTrace系列:9. 大结局之 跨平台 和 自定义行为 诊断

一:背景 1. 讲故事 本篇是系列的最后一篇,我们从跨平台部署和自定义诊断的角度跟大家聊一聊 dottrace,希望对大家有所启发。 二:跨平台和自定义诊断 1. 如何跨平台诊断分析 如果 dottrace 只...
DotTrace系列:8. 时间诊断之 异步代码 和 Task任务-牛翰网

DotTrace系列:8. 时间诊断之 异步代码 和 Task任务

一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 Continue...
DotTrace系列:7. 诊断 托管和非托管 内存暴涨-牛翰网

DotTrace系列:7. 诊断 托管和非托管 内存暴涨

一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径采...
.NET高级调试之sos命令输出看不懂的处理方法-牛翰网

.NET高级调试之sos命令输出看不懂的处理方法

目录 一:背景 1. 讲故事 二:WinDbg 分析 2. 取自哪里 3. 如何模拟复现 三:总结 一:背景 1. 讲故事 很多.NET开发者在学习高级调试的时候,使用sos的命令输出会发现这里也看不懂那里也看不懂...
DotTrace系列:4. 诊断窗体程序变卡之原因分析-牛翰网

DotTrace系列:4. 诊断窗体程序变卡之原因分析

一:背景 1. 讲故事 写这一篇是因为昨天看 dottrace 官方文档时,在评论区看到了一条不友好的评论,截图如下: 虽然语气上带有些许愤怒,但说实话人家也不是无中生有,作为 dottrace 的忠实粉丝...
DotTrace系列:3. 时间度量之墙钟时间和线程时间-牛翰网

DotTrace系列:3. 时间度量之墙钟时间和线程时间

一:背景 1. 讲故事 在用 dotTrace 对程序进行性能评测的时候,有一个非常重要的概念需要使用者明白,那就是 时间度量 (Time measurement),主要分为两种。 墙钟时间 线程时间 在 dotTrace 中有...
记一次 .NET 某无语的电商采集系统 CPU爆高分析-牛翰网

记一次 .NET 某无语的电商采集系统 CPU爆高分析

一:背景 1. 讲故事 前段时间有位朋友微信上找到我,说他们docker中的采集程序出现了CPU爆高的情况,让我帮忙看下怎么回事,自己抓了个dump,感觉这位朋友动手能力还是比较强的,可能调试这块知...
记一次 .NET 某发证机系统 崩溃分析-牛翰网

记一次 .NET 某发证机系统 崩溃分析

一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他的系统有偶发崩溃,自己也没找到原因,让我帮忙看下怎么回事,我分析dump一直都是免费的,毕竟对这些东西挺感兴趣,有问题可以直接call...
记一次 .NET 某SaaS版CRM系统 崩溃分析-牛翰网

记一次 .NET 某SaaS版CRM系统 崩溃分析

一:背景 1. 讲故事 调试训练营里的一位学员前些天找到我,说他们跑在k8s中的程序崩掉了不知道怎么回事?日志也没有记录到,让我帮他看看,dump也抓到了,既然抓到了那就看看吧。 二:程序为什...
MinHook 对.NET底层的 SendMessage 拦截真实案例反思-牛翰网

MinHook 对.NET底层的 SendMessage 拦截真实案例反思

一:背景 1. 讲故事 上一篇我们说到了 minhook 的一个简单使用,这一篇给大家分享一个 minhook 在 dump 分析中的实战,先看下面的线程栈。 0:044> ~~[138c]s win32u!NtUserMessageCall+0x14:...