- 博客(579)
- 收藏
- 关注
原创 记一次 .NET某防伪验证系统 崩溃分析
说实话要想解释这个程序为什么会崩溃,需要分析者对GC的运作逻辑有一定的了解,否则真抓瞎了,所以.NET调试训练营中的GC理论知识一定是分析这些 dump 的基石。
2024-03-28 12:47:01 616
原创 记一次 .NET某半导体CIM系统 崩溃分析
说实话在我的dump分析旅程中,这个dump的分析难度还是比较大的,它考验着你对bgc线程底层运作的理解,所幸的是我在调试训练营里用windbg让大家亲眼目睹了后台标记三阶段的详细过程,真是三生有幸!
2024-03-25 16:30:39 640
原创 记一次 .NET某游戏后端API服务 CPU爆高分析
这种将赋给静态变量的奇葩操作其实蕴含着巨大的安全隐患,会导致多个用户之间串cookie,但以服务器自爆的方式来避免客户端串cookie,真的是不幸中的万幸,哈哈,同时用bug去抑制另一个bug的神操作也真的是大自然的鬼斧神工!
2024-03-21 15:58:26 960
原创 记一次 .NET某设备监控自动化系统 CPU爆高分析
CPU爆高的诱因非常多,高频的抛异常就属于其中一例,其实这种通信时发生了突发异常正是 Polly 这种弹性和瞬态故障处理库大显身手的地方。
2024-03-06 13:35:09 1206
原创 记一次 .NET某列控连锁系统 崩溃分析
有丰富经验的朋友肯定知道,bit翻转大多是辐射导致计算机数字信号偶发的紊乱,这也是为什么医院要加个铅版来阻隔,而这个程序所处的环境刚好是辐射比较多的高铁系。所以分析完之后,非我等调试师能为之,远离辐射。。。
2024-02-21 18:29:44 1160
原创 记一次 .NET某工控自动化系统 崩溃分析
说实话这个dump分析起来还是有一定难度的,它考验着你对GC标记阶段玩法的底层理解,即使这位朋友是C#编程高手,分析了个把星期找不出问题是能够理解的,毕竟术业有专攻,很开心的是这位朋友因此加了.NET高级调试训练营,哈哈,以dump会友。
2024-01-26 12:43:06 113
原创 C# AsyncLocal 是如何实现 Thread 间传值
说了这么多,其实精妙之处在于创建OS线程的时候,会把C# Thread实例(coreclr对应线程) 作为参数传递给新线程,即下面方法签名中的参数,新线程拿到了Thread实例,自然就能获取到被调用线程赋值的字段,所以这是完完全全的C#层面玩法,希望能给后来者解惑吧!
2024-01-25 16:10:55 495
原创 C# 线程本地存储 为什么线程间值不一样
在 C# 开发中经常会有一些疑惑,如果不了解汇编,C++ ,相信你会陷入到很多的魔法使用中而苦于不能独自解惑的遗憾。
2024-01-23 16:40:09 383
原创 记一次 .NET某道闸收费系统 内存溢出分析
这个事故非常有意思,一个简简单单的CanRead误用就对程序造成了毁灭性的打击,这也警示大家在用某个属性某个方法前,一定要先搞清楚它到底是怎么玩的。
2024-01-18 11:02:03 567
原创 记一次 .NET某MES自动化桌面程序 卡死分析
这次程序卡死还是挺有意思的,表象是主线程被GC卡住,实则是大SQL导致虚拟地址不足,分享出来让大家少踩坑吧!
2024-01-16 09:49:43 478
原创 聊一聊 C# 的线程本地存储TLS到底是什么
C# 属于一种业务高层抽象的语言,它的很多底层被C++再次隔离了,想要理解本篇的TLS,还得需要往下一层一层的击穿,作为C#程序员太难了。
2024-01-16 09:48:32 864
原创 记一次 .NET某股票交易软件 灵异崩溃分析
一个是辐射导致的bit位翻转,一个是不可能走到else的地方走了else,各个奇奇怪怪的事情,让我的高级调试之旅丰富多彩,大家觉得这个崩溃还有其他的可能性吗?期待大家的留言。
2024-01-05 13:05:22 1301
原创 记一次 .NET某工控 宇宙射线 导致程序崩溃分析
直到昨天看了这篇莫非我遇到了传说中的bug?宇宙射线太阳耀斑地磁暴电离辐射硬件故障杀毒软件内存超频我觉得内存超频引发的程序不稳定概率是最大的,不知道大家可有不同的看法?
2024-01-05 12:51:43 1400
原创 聊一聊 C# 线程切换后上下文都去了哪里
哈哈,是不是非常有意思,一个简单的 Sleep(1) 涉及到两块的寄存器上下文,并都保存在内核线程栈的区间,这也算是加深了自己对操作系统的理解,也帮一些朋友解答了一些困惑!
2024-01-05 12:51:11 606
原创 记一次 .NET 某药厂业务系统 CPU爆高分析
这次CPU的爆高还是挺有意思,不是业务方法导致的爆高,而是大量的 Sleep(1) 导致的高频上下文切换所致,有点意思,留下此文给大家避坑!
2024-01-05 12:50:34 1348
原创 聊一聊 .NET高级调试 内核模式堆泄露
在过往的dump分析中都是用户态程序的泄露,内核态模式堆的的泄露还是第一次分析,不是朋友提供的这次机会,真的就没缘分啦!在这次dump分析过程中,也让大家看到了 windbg 是多么的强大!
2024-01-05 12:50:04 1219
原创 聊一聊 .NET高级调试 中必知的符号表
总而言之,符号表就是对茫茫内存进行标记,就像百度地图一样,让我们知道某个经纬度上有什么建筑,让无情的地理坐标更加有温度,让世界更美好。
2024-01-05 12:49:16 854
原创 记一次 .NET 某新能源材料检测系统 崩溃分析
这次生产事故,我感觉用户和CLR都有责任,托管线程的栈空间都释放了,为什么 CLR 在触发 GC 时还要去爬它的栈导致崩溃的发生,这真的是一个很有意思的dump。
2024-01-05 12:47:08 1147
原创 记一次 .NET 某零售管理系统 存储不足分析
存储空间不足,无法处理此命令基本上 98% 都是内存空间不足导致的,只有 2% 的情况真的是硬盘不足。这个dump最有价值的地方在于没有纠结于异常,并且在没有抛出 OutofMemoryException 异常的前提前定位出问题所在。
2024-01-05 12:46:33 737
原创 聊一聊 .NET高级调试 中的一些内存术语
我尽最大努力通过多个观察工具用眼见为实的方式把这几个内存指标系统的说了一下,希望大家对这几个术语不再迷茫,以后有人问类似问题就可以把这篇丢过去,减轻了你我负担…
2024-01-05 12:45:41 1258
原创 对 .NET程序2G虚拟地址紧张崩溃 的最后一次反思
本篇说了这么多,其实都是一些不得已而为之的事情,很心酸,这世上很多东西不是靠技术就能解决的,更需要靠人情事故!
2023-11-24 15:31:25 805
原创 如何通过 wireshark 捕获 C# 上传的图片
wireshark 还是非常强大有意思的,相比呈现工具更多的还是需要对协议的理解,希望能对dump分析提供一些原料动力!
2023-11-16 14:41:32 866
原创 记一次 .NET 某券商论坛系统 卡死分析
这次生产事故的分析峰回路转,本来是一个很容易就能定位出的问题,可我认为权威的sos居然吐出了假数据欺骗了我,让我误入歧途,浪费了很多的人力物力,真的很无语。。。再也不相信 sos 了!
2023-11-14 13:23:02 934
原创 聊一聊 tcp/ip 在.NET故障分析的重要性
人是活在错综复杂的关系网里,同样程序也是,要想解决更多的.NET程序故障,对 tcp/ip 体系知识的了解也同样必不可少。
2023-11-07 17:23:36 539
原创 记一次 .NET 某工厂无人车调度系统 线程爆高分析
这次线程爆高的事故原因还是挺有意思的,用了一个双同步来获取 serial 值,感觉像是一种聪明反被聪明误,代码一定要简单粗暴,代码越少bug越少。
2023-11-01 10:49:33 144
原创 记一次 .NET某新能源检测系统 崩溃分析
这个崩溃还是挺有意思的,需要你对 Windows 层面的知识有一定的了解,否则很难找出前因后果,所以请善待做大工控的朋友。
2023-10-16 15:31:48 140
原创 记一次 .NET 某拍摄监控软件 卡死分析
这次卡死事故还是挺有教育意义的,告诉我们第三方插件尽量应升尽升,同时也考察了对 临界区锁 和 socket 的基础知识。
2023-09-26 11:42:42 1498 2
原创 记一次 .NET某新能源MES系统 非托管泄露
这次事故主要是朋友用 CSharpCodeProvider 动态生成程序集导致的程序集泄露,猜测代码是在哪里 copy 过来的,一定要搞清楚原理才能放心用,合理创建合理释放。
2023-09-25 10:45:57 140
原创 记一次 .NET 某仪器测量系统 CPU爆高分析
这两个 CPU 爆高事故还是非常经典的,根子上还是有不少初中级程序员具有偷懒 + 无视算法的思维,谨以这篇让后来的朋友少踩坑吧!
2023-09-22 13:01:27 367
原创 记一次 .NET 某餐饮小程序 内存暴涨分析
这次内存暴涨把生产服务器弄崩了,就是因为这么个低级错误导致实属不应该,本以为程序员不会写出什么死循环,还真的遇到了,提高开发人员的代码敏感性迫在眉睫。
2023-09-21 10:51:22 207
原创 记一次 .NET 某电力系统 内存暴涨分析
这起内存暴涨事故,表象上是 8216 的阻挡导致了内存无法被uncommitted所致,本质上还是归于托管堆的内存黑洞现象。
2023-09-18 10:38:17 1017 1
原创 记一次 .NET某培训学校系统 内存碎片化分析
说实话文件句柄暴涨byte[]导致的内存暴涨pinned 导致的内存碎片化线程池暴涨 导致的程序无响应大家使用前需慎之又慎,三思而后行!!!
2023-08-03 10:28:44 205
原创 记一次 .NET 某物流API系统 CPU爆高分析
这次CPU爆高事故,主要还是因为批量提交记录多导致 SqlSugar 在做参数的正则替换上耗费了大量CPU时间所致,降低批量条数,通过小步快跑的方式尽可能的降低运行线程的积压,应该就能解决这个问题。
2023-07-31 15:44:49 1902
原创 如何用 PerfView 洞察 C# 中的慢速方法
相信这篇能够给一些在慢速方法查找上有困惑的朋友找到一些灵感,还是那句话,CLR团队首推的 PerfView 在运行期监控方面是王者般的存在,与 WinDbg 优势互补。
2023-07-21 13:04:06 174
原创 PerfView 洞察那些 C# 代码中的短命线程
相比WinDbg TTD的重模式,Perfiew真的很轻,而且无侵入性,这两个工具真的是珠联璧合,相得益彰。
2023-07-19 09:26:07 823 1
原创 用 perfcollect 洞察 Linux 上.NET程序CPU爆高
不知道大家发现没有,在 Windows 上很容易监控的东西,在 Linux 上就要麻烦的多,其实很容易理解,Windows 是微软的, .NET 也是微软的,自然是一等公民的存在。
2023-07-18 09:57:39 263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人