上一页 1 2 3 4 5 6 7 8 9 ··· 46 下一页
摘要: 一:背景 1. 讲故事 年前有位朋友找到我,说他们的程序会偶发性卡慢 10s 钟,在某些组合下会正常,某些组合下就会出现问题,解释不了其中的原因,让我帮忙看下怎么回事?截图如下: private void TestRun() { int encposUpy = 0; Logger Log = new 阅读全文
posted @ 2025-04-14 11:33 一线码农 阅读(1697) 评论(7) 推荐(11)
摘要: 一:背景 1. 讲故事 年前有位朋友找到我,说他们的系统会偶发性的CPU爆高,有时候是爆高几十秒,有时候高达一分多钟,自己有一点分析基础,但还是没找到原因,让我帮忙看下怎么回事? 二:CPU爆高分析 1. CPU 真的爆高吗 还是那句话,一定要相信数据,不要被别人带偏,使用 !tp 和 !cpuid 阅读全文
posted @ 2025-04-11 12:02 一线码农 阅读(1161) 评论(5) 推荐(7)
摘要: 一:背景 1. 讲故事 前面跟大家分享过一篇 C# 调用 C代码引发非托管内存泄露 的文章,这是一个故意引发的正向泄露,这一篇我们从逆向的角度去洞察引发泄露的祸根代码,这东西如果在 windows 上还是很好处理的,很多人知道开启一个 ust 即可,让操作系统帮忙介入,在linux上就相对复杂一点了 阅读全文
posted @ 2025-03-07 11:10 一线码农 阅读(1073) 评论(0) 推荐(7)
摘要: 一:背景 1. 讲故事 上一篇我们聊过 C# 调用 C 的 malloc 代码来演示heap的内存泄露问题,但要想深入研究得必须把 malloc 的实现库 libc.so 给调试起来,大家都知道在Linux 上 libc 和 Windows 的 Win32 API 是一个层级的,由于 Linux 重 阅读全文
posted @ 2025-03-04 14:45 一线码农 阅读(1110) 评论(3) 推荐(4)
摘要: 一:背景 1. 讲故事 好久没写文章了,还是来写一点吧,今年准备多写一点 Linux平台上的东西,这篇从 C# 调用 C 这个例子开始。在 windows 平台上,我们常常在 C++ 代码中用 extern "C" 导出 C风格 的函数,然后在 C# 中用 DllImport 的方式引入,那在 Li 阅读全文
posted @ 2025-03-03 14:07 一线码农 阅读(1549) 评论(11) 推荐(7)
摘要: 一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doublemapper__deleted_ 字样,问我为啥会这样?说实话作为我们这些调试者非常喜欢和这样的人 阅读全文
posted @ 2025-01-20 13:51 一线码农 阅读(1155) 评论(0) 推荐(9)
摘要: 一:背景 1. 讲故事 今年以来不知道为啥总有些朋友加我微信,让我帮忙分析下操作系统蓝屏问题,我也觉得挺好奇的,就问了其中一位朋友,说是B站来的,我就在拼命回忆,为啥会找我分析蓝屏?突然想到了去年好像录了一集关于 CrowdStrike 的热点事件。。。我本来是做.NET程序的故障分析,这操作系统的 阅读全文
posted @ 2025-01-19 14:16 一线码农 阅读(1965) 评论(5) 推荐(25)
摘要: 一:背景 1. 讲故事 写这篇文章起源于训练营里一位朋友最近在微信聊到他对这个问题使用了一种非常切实可行,简单粗暴的方式,并且也成功解决了公司里几个这样的卡死dump,如今在公司已是灵魂级人物,让我也尝到了什么叫反哺!对,这个东西叫 Harmony, github网址: https://github 阅读全文
posted @ 2025-01-13 12:11 一线码农 阅读(3914) 评论(3) 推荐(15)
摘要: 一:背景 1. 讲故事 最近聊了不少和异步相关的话题,有点疲倦了,今天再写最后一篇作为近期这类话题的一个封笔吧,下篇继续写我熟悉的 生产故障 系列,突然亲切感油然而生,哈哈,免费给别人看程序故障,是一种积阴德阳善的事情,欲知前世因,今生受者是。欲知来世果,今生做者是。 在任务延续方面,我个人的总结就 阅读全文
posted @ 2025-01-09 14:55 一线码农 阅读(2439) 评论(7) 推荐(15)
摘要: 一:背景 1. 讲故事 最近时间相对比较宽裕,多写点文章来充实社区吧,这篇文章主要还是来自于最近遇到的几例线程饥饿(Task.Result)引发的一系列的反思和总结,我觉得.NET8容易引发饥饿的原因,更多的在于异步回调之后底层会反复的将结果丢到线程池所致,因为数据进线程池容易,再用线程到池中去捞就 阅读全文
posted @ 2025-01-07 14:41 一线码农 阅读(2575) 评论(15) 推荐(7)
摘要: 一:背景 1. 讲故事 前段时间训练营里的一位朋友提了一个问题,我用ReadAsync做文件异步读取时,我知道在Win32层面会传 lpOverlapped 到内核层,那在内核层回头时,它是如何通过这个 lpOverlapped 寻找到 ReadAsync 这个异步的Task的呢? 这是一个好问题, 阅读全文
posted @ 2025-01-06 11:38 一线码农 阅读(652) 评论(2) 推荐(4)
摘要: 一:背景 1. 讲故事 上个月在社区写的文章比较少,一直关注的朋友应该知道那段时间被狗咬了以及一些琐事处理,所以手头上也攒了不少需要分享的案例,这段时间比较空闲,逐个给大 家做个分享吧,刚好年后为新版的 .NET高级调试训练营 做案例储备,所以抓紧时间疯狂输出吧! 这次生产事故的dump是训练营里一 阅读全文
posted @ 2024-12-31 11:15 一线码农 阅读(1853) 评论(13) 推荐(18)
摘要: 一:背景 1. 讲故事 准备明年把.NET高级调试的训练营的课程进行重构,采用案例引导式,而CPU爆高类有不少是程序员在写代码的时候不注意时间复杂度,在数据量稍微大一点的情况直接幻化成了死循环,时间复杂度这东西是学校的数据结构课程,有心的朋友在写多层循环的时候脑子里面一定要过一遍,今天就给大家带一篇 阅读全文
posted @ 2024-12-30 11:46 一线码农 阅读(2218) 评论(12) 推荐(8)
摘要: 一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细的讲讲吧,哈哈,训练营里的学员得有求必应哈。。。话不多说,我们一起探索下这个程序的崩溃之路吧。 二: 阅读全文
posted @ 2024-12-27 11:54 一线码农 阅读(1665) 评论(0) 推荐(13)
摘要: 一:背景 1. 讲故事 前面二篇我们聊到了 Thread.Sleep 和 Task.Result 场景下的线程注入逻辑,在线程饥饿的情况下注入速度都不是很理想,那怎么办呢?有没有更快的注入速度,这篇作为 动态注入 的终结篇,我个人总结如下两种方法,当然可能有更多的路子,知道的朋友可以在下面留言。 二 阅读全文
posted @ 2024-12-25 13:32 一线码农 阅读(1320) 评论(5) 推荐(7)
上一页 1 2 3 4 5 6 7 8 9 ··· 46 下一页