会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
13
14
15
16
17
18
19
20
21
···
46
下一页
2022年10月3日
C# 内存泄漏之 Internal 关键词代表什么?
摘要: 一:背景 1. 背景 前段时间有位朋友咨询说他的程序出现了非托管内存泄漏,说里面有很多的 HEAP_BLOCK 都被标记成了 Internal 状态,而且 size 都很大, 让我帮忙看下怎么回事? 比如下面这样。 1cbea000: 42000 . 42000 [101] - busy (41fe
阅读全文
posted @ 2022-10-03 10:30 一线码农
阅读(2746)
评论(0)
推荐(9)
2022年9月21日
C# 中的那些锁,在内核态都是怎么保证同步的?
摘要: 一:背景 1. 讲故事 其实这个问题是前段时间有位朋友咨询我的,由于问题说的比较泛,不便作答,但想想梳理一下还是能回答一些的,这篇就来聊一聊下面这几个锁。 Interlocked AutoResetEvent / ManualResetEvent Semaphore 用户态层面我就不想说了,网上一搜
阅读全文
posted @ 2022-09-21 13:06 一线码农
阅读(3192)
评论(7)
推荐(21)
2022年9月19日
C#非托管泄漏中HEAP_ENTRY的Size对不上是怎么回事?
摘要: 一:背景 1. 讲故事 前段时间有位朋友在分析他的非托管泄漏时,发现NT堆的_HEAP_ENTRY 的 Size 和 !heap 命令中的 Size 对不上,来咨询是怎么回事? 比如下面这段输出: 0:000> !heap 0000000000550000 -a Index Address Name
阅读全文
posted @ 2022-09-19 14:37 一线码农
阅读(1737)
评论(0)
推荐(8)
2022年9月14日
记一次 .NET 某打印服务 非托管内存泄漏分析
摘要: 一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的程序出现了内存泄漏,能不能帮他看一下,这个问题还是比较经典的,加上好久没上非托管方面的东西了,这篇就和大家分享一下,话不多说,上 WinDbg 说话。 二:WinDbg 分析 1. 到底是哪里的泄漏 好的开始就是成功的一半,否则就南辕北辙
阅读全文
posted @ 2022-09-14 08:34 一线码农
阅读(2755)
评论(2)
推荐(12)
2022年9月6日
记一次 .NET 某数控机床控制程序 卡死分析
摘要: 一:背景 1. 讲故事 前段时间有位朋友微信上找到我,说它的程序出现了卡死,让我帮忙看下是怎么回事? 说来也奇怪,那段时间求助卡死类的dump特别多,被迫训练了一下对这类问题的洞察力 😄😄😄,再次声明一下,我分析 dump 是免费的,没有某软高额的分析费用,你要问我图什么,图技术的精进。 回到
阅读全文
posted @ 2022-09-06 08:37 一线码农
阅读(1727)
评论(2)
推荐(7)
2022年9月5日
如何在 C# 程序中注入恶意 DLL?
摘要: 一:背景 前段时间在训练营上课的时候就有朋友提到一个问题,为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的? 其实简而言之就是线程的远程注入,这一篇就展开说一下。 二:实现原理 1. 基本思路 WinDbg 在附加进程的时候,会注入一个线程到 C# 进程 中,注入
阅读全文
posted @ 2022-09-05 08:18 一线码农
阅读(4660)
评论(9)
推荐(38)
2022年9月3日
总在用户态调试 C# 程序,终还是搭了一个内核态环境
摘要: 一:背景 一直在用 WinDbg 调试用户态程序,并没有用它调试过 内核态,毕竟不是做驱动开发,也没有在分析 dump 中需要接触用内核态的需求,但未知的事情总觉得很酷,加上最近在看 《深入解析 Windows 操作系统》 一书,书中有不少案例需要深入到 内核态 ,所以这篇准备整理一下如何用 Win
阅读全文
posted @ 2022-09-03 11:56 一线码农
阅读(1017)
评论(1)
推荐(12)
2022年9月2日
在 C# CLR 中学习 C++ 之了解 extern
摘要: 一:背景 在 CLR 源码中有很多的 extern 和 extern "C" 这样的关键词,比如下面这些代码: extern size_t gc_global_mechanisms[MAX_GLOBAL_GC_MECHANISMS_COUNT]; extern DWORD g_dwHandles;
阅读全文
posted @ 2022-09-02 10:46 一线码农
阅读(942)
评论(0)
推荐(3)
2022年9月1日
在 C# CLR 中学习 C++ 之了解 namespace
摘要: 一:背景 相信大家在分析 dump 时,经常会看到 WKS 和 SRV 这样的字眼,如下代码所示: 00007ffa`778a07b8 coreclr!WKS::gc_heap::segment_standby_list = 0x00000000`00000000 00007ffa`778a3870
阅读全文
posted @ 2022-09-01 12:01 一线码农
阅读(657)
评论(0)
推荐(4)
2022年8月29日
记一次 .NET 某轻轨项目 WPF 程序卡死分析
摘要: 一:背景 1. 讲故事 前段时间遇到了一个难度比较高的 dump,经过几个小时的探索,终于给找出来了,在这里做一下整理,希望对大家有所帮助,对自己也是一个总结,好了,老规矩,上 WinDBG 说话。 二:WinDbg 分析 1. 为什么会卡死 既然程序卡死,那肯定是被冻住了,所以看下主线程此时在做什
阅读全文
posted @ 2022-08-29 17:28 一线码农
阅读(1910)
评论(3)
推荐(8)
2022年8月28日
PerfView专题 (第十二篇):对 C# 下的 SDK 类库进行监控(大结局)
摘要: 一:背景 本篇是我们系列文章的最后一篇,前面的文章中大多是在 CLR Runtime 以及 OS 层面进行监控来发现各种可疑的程序问题,除了这两个层面,其实我们还可以对 SDK 中一些类进行洞察,比如说: ArrayPool Http Socket Task 更多资料可以看下:https://doc
阅读全文
posted @ 2022-08-28 18:01 一线码农
阅读(1031)
评论(0)
推荐(4)
2022年8月25日
PerfView专题 (第十一篇):使用 Diff 功能洞察 C# 内存泄漏增量
摘要: 一:背景 去年 GC架构师 Maoni 在 (2021 .NET 开发者大会) [https://ke.segmentfault.com/course/1650000041122988/section/1500000041123017] 上演示过 PerfView 的 Diff 功能来寻找内存增量,
阅读全文
posted @ 2022-08-25 17:50 一线码农
阅读(2686)
评论(0)
推荐(7)
2022年8月24日
PerfView专题 (第十篇):洞察 C# 终结队列引发的内存泄漏
摘要: 一:背景 C# 程序内存泄漏的诱发因素有很多,但从顶层原理上来说,就是该销毁的 用户根 对象没有被销毁,从而导致内存中意料之外的对象无限堆积,导致内存暴涨,最终崩溃,这其中的一个用户根就是 终结器队列,这一篇我们就来看下如何让 PerfView 配合 WinDbg 双剑合璧。 二:如何洞察 1. 终
阅读全文
posted @ 2022-08-24 10:05 一线码农
阅读(971)
评论(2)
推荐(1)
2022年8月23日
PerfView专题 (第九篇):洞察 C# 中的 LOH 内存碎片化
摘要: 一:背景 在 内存泄漏 的系列问题中,有一类问题是 内存碎片化 导致的,而且这种更容易发生在 LOH 上,因为它默认不开启 对象压缩,一般遇到这种情况,优先让朋友执行下面的代码应急。 GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHe
阅读全文
posted @ 2022-08-23 16:35 一线码农
阅读(1119)
评论(0)
推荐(2)
2022年8月22日
PerfView专题 (第八篇):洞察 C# 内存泄漏之寻找静态变量名和GC模式
摘要: 一:背景 这篇我们来聊一下 PerfView 在协助 WinDbg 分析 Dump 过程中的两个超实用技巧,可能会帮助我们快速定位最后的问题,主要有如下两块: 洞察内存泄漏中的静态大集合变量名。 验证当前程序的 GC 模式。 这里就把经验分享一下,希望让大家少走弯路。 二:如何洞察 1. 查看静态变
阅读全文
posted @ 2022-08-22 09:10 一线码农
阅读(1056)
评论(2)
推荐(4)
上一页
1
···
13
14
15
16
17
18
19
20
21
···
46
下一页
公告