上一页 1 2 3 4 5 6 ··· 46 下一页
摘要: 一:背景 1. 讲故事 在.NET高级调试中,我们需要知道很多的C#底层细节,如果搞不清这些底层细节,那与之相关的故障可能就搞不定,所以调试这个东西需要我们有一个比较广的知识面,痛苦哈,比如这篇跟大家聊到的 CancellationTokenSource 。 二:CancellationTokenS 阅读全文
posted @ 2025-09-05 11:01 一线码农 阅读(1899) 评论(3) 推荐(16)
摘要: 一:背景 1. 讲故事 微信上有位朋友找到我,说他们部署在linux上的 .net 程序会隔几天崩溃一次,一直找不到原因,让我帮忙看下怎么回事,让朋友用 procdump 抓了一个dump下来,然后就是正式的分析啦。 二:崩溃分析 1. 为什么会崩溃 拿到dump之后,双击dump打开,会看到程序崩 阅读全文
posted @ 2025-09-04 10:14 一线码农 阅读(581) 评论(0) 推荐(2)
摘要: 一:背景 1. 讲故事 最近在分析一个崩溃dump时,发现祸首和AssemblyLoadContext有关,说实话这东西我也比较陌生,后来查了下大模型,它主要奔着替代 .NetFrameWork 时代的 AppDomain 的,都是用来做晚期加卸载,实现对宿主程序的可插拔,AppDomain.Cre 阅读全文
posted @ 2025-08-30 12:19 一线码农 阅读(1044) 评论(1) 推荐(11)
摘要: 一:背景 1. 讲故事 前段时间微信上有位非调试训练营学员找到我,说他们的医疗软件有点问题,有时候卡了一会就好了,有时候卡了很久,让我帮忙看下怎么回事,我让这位朋友在卡的时候抓一个dump给我,我分析看看。 二:卡死分析 1. 为什么会卡死 对于窗体程序的卡死,主要就是看主线程此时正在做什么,使用 阅读全文
posted @ 2025-08-27 18:11 一线码农 阅读(848) 评论(2) 推荐(5)
摘要: 一:背景 1. 讲故事 今年年初有位朋友在微信上找到我,说他们的系统在客户这边崩掉了,在代码中也加了全局异常处理但还是崩,不知道咋回事,让朋友在客户那边拿程序dump,拿到dump之后开始分析。 二:崩溃分析 1. 为什么会崩溃 既然是崩溃,那就用 !analyze -v 命令观察下windbg给我 阅读全文
posted @ 2025-08-26 12:26 一线码农 阅读(896) 评论(3) 推荐(6)
摘要: 一:背景 1. 讲故事 前段时间微信里有一位非训练营学员找到我,说他们的系统在某些时段会cpu爆高,并伴有网络带宽的激增,不知道是什么情况,让我帮忙看下怎么回事,哈哈,说这个故障之前,我先吐槽一下,地狱不空,在社区里我一个人的力量太微弱了,这5年来我给行业内开发朋友都是全免费分析,这也让自己不堪重负 阅读全文
posted @ 2025-08-25 10:25 一线码农 阅读(898) 评论(2) 推荐(4)
摘要: 一:背景 1. 讲故事 训练营里的一位学员找到我,说他们的系统会出现内存暴涨的情况,看了下也不是托管堆的问题,让我协助一下到底怎么回事?既然有dump了,那就开始分析之旅吧。 二:内存暴涨分析 1. 为什么会暴涨 在分析之前还是那条原则,不要过分的相信求助者的话,否则容易被他带沟里去,毕竟人家是业余 阅读全文
posted @ 2025-08-21 10:18 一线码农 阅读(596) 评论(0) 推荐(6)
摘要: 一:背景 1. 讲故事 前些天训练营里的一位学员找到我,说他们的系统出现了崩溃,自己分析了遍也没找到是什么原因,让我帮忙看下怎么回事?dump拿到手后,接下来就上windbg分析。 二:崩溃分析 1. 为什么会崩溃 打开dump之后,windbg 会自动定位崩溃点,输出如下: ........... 阅读全文
posted @ 2025-08-20 09:42 一线码农 阅读(677) 评论(3) 推荐(5)
摘要: 一:背景 1. 讲故事 前些天有位朋友找到我,说他们工厂里面的程序不知道怎么就突然卡死了,让我帮忙看下怎么回事?dump也拿到了,对于这类程序,其实我还是非常有信心的,接下来就来分析吧。 二:卡死分析 1. 为什么会卡死 因为是窗体程序,所以我们直接看主线程,使用 ~0s;!clrstack 观察托 阅读全文
posted @ 2025-08-19 10:05 一线码农 阅读(811) 评论(0) 推荐(2)
摘要: 一:背景 1. 讲故事 前些天有位朋友找到我,说他们开发的在客户工厂里的窗体程序出现了卡死情况,并且 Ctrl+C 也退不出来,自己分析了下也没找出是什么原因,后来在网络上就找到了我,让我帮忙看下怎么回事? 毕竟我在这一块是专业的。。。 哈哈,既然有dump,那就拿出来分析一下。 二:卡死分析 1. 阅读全文
posted @ 2025-08-12 11:08 一线码农 阅读(1693) 评论(5) 推荐(13)
摘要: 一:背景 1. 讲故事 前天收到了一个.NET程序崩溃的dump,经过一顿分析之后,发现祸根是因为一个.NET托管线程(DBG=XXXX)的异常退出所致,参考如下: 0:011> !t ThreadCount: 17 UnstartedThread: 0 BackgroundThread: 16 P 阅读全文
posted @ 2025-08-05 11:10 一线码农 阅读(1324) 评论(0) 推荐(15)
摘要: 一:背景 1. 讲故事 前几天高级调试训练营里的一位学员找到我,说他们的程序句柄爆高,经过自己分析之后发现是几百万的 process 句柄,截图如下: 说实话,第一眼看到有这么多的 process 句柄还是挺震惊的,在我的400+dump分析之旅中还是从未见过,这也给了我很大的好奇心,接下来我们就来 阅读全文
posted @ 2025-08-01 11:48 一线码农 阅读(872) 评论(2) 推荐(15)
摘要: 一:背景 1. 讲故事 这篇文章起源于和一家 .NET公司 开线上会议时,提出的一个场景问题,程序出现了非托管内存暴涨,这些非托管内存关联的对象都囤积在 终结器队列 中,很显然这是代码中没用 using 及时释放引发的,而这块代码又是第三方组件,你想加也加不了,所以提出了一个设想:能不能设法干预 终 阅读全文
posted @ 2025-07-02 17:11 一线码农 阅读(810) 评论(5) 推荐(8)
摘要: 一:背景 1. 讲故事 本篇是系列的最后一篇,我们从跨平台部署和自定义诊断的角度跟大家聊一聊 dottrace,希望对大家有所启发。 二:跨平台和自定义诊断 1. 如何跨平台诊断分析 如果 dottrace 只能在 windows 平台上跑,那确实不值得写一个系列,目前它可以横跨三大平台(Windo 阅读全文
posted @ 2025-06-30 15:05 一线码农 阅读(482) 评论(3) 推荐(1)
摘要: 一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 ContinueWith 没有本质区别,这一篇我们就来聊一聊。 二: 阅读全文
posted @ 2025-06-30 08:35 一线码农 阅读(407) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 46 下一页