记一次 .NET 某医院门诊软件 卡死分析

一:背景1. 讲故事前几天有位朋友找到我,说他们的软件在客户那边卡死了,让我帮忙看下是怎么回事?我就让朋友在程序卡死的时候通过 任务管理器 抓一个 dump 下来,虽然默认抓的是 wow64 ,不过用 soswow64.dll 转还是可以的,参考命令如下: .load C:\soft\soswow64\soswow64.dll !wow64exts.sw 接下来就可以分析了哈。二:WinDbg 分...

记一次 Visual Studio 2022 卡死分析

一:背景1. 讲故事最近不知道咋了,各种程序有问题都寻上我了,你说 .NET 程序有问题找我能理解,Windows 崩溃找我,我也可以试试看,毕竟对 Windows 内核也知道一丢丢,那 Visual Studio 有问题找我就说不过去了,但又不好拒绝,就让朋友发下卡死的 dump 我看一看。二:WinDbg 分析1. 到底是哪里的卡死因为 VS 是窗体程序,所以在卡死的时候看下主线程便知,使...

记一次docker中的oracle连接问题

起因是客户登陆时报错TNS-12537 登陆上上服务器后,发现了几个特点。 1、没有oracle用户 2、数据文件的位置和spfile里面写的不一样 3、pmon进程存在,但是父进程ID不是1 4、配置oracle用户及环境变量,但是as sysdba无法登录到数据库 查看pmon的父进程 好家伙,container,看来是个容器。  试了下docker ps果然是个容器 从docker进入,一气呵成 ...

记一次 .NET 某汽贸店 CPU 爆高分析

一:背景1. 讲故事上周有位朋友在 github 上向我求助,说线程都被卡住了,让我帮忙看下,截图如下: 时隔两年 终于有人在上面提 Issue 了,看样子这块以后可以作为求助专区来使用,既然来求助,必须得免费帮忙解决,从朋友这边拿到 dump 之后,接下来就可以分析了。二:WinDbg 分析1. 为什么有大量线程卡住在朋友的文案描述中可以看到有一段 !syncblk 输出,格式有点乱,再用这...

记一次生产要我狗命的问题

问题起因:引入disruptor框架 简单理解就是生产消费者模式 用来支持高并发 先说问题和改正 再展开 问题:没有当时的截图了 直接描述吧 问题就是cpu占用过高 居高不下的那种 排查:就是看线程名字和占用的大概 再根据近期发布的东西 再根据本地自己拿cpu监控工具去看 本地跑 截图如下 这个sequence 会特别的多 改正 //这事错误的Disruptor<LongEvent> disrupt...

记一次 .NET某医疗器械清洗系统 卡死分析

一:背景1. 讲故事前段时间协助训练营里的一位朋友分析了一个程序卡死的问题,回过头来看这个案例比较经典,这篇稍微整理一下供后来者少踩坑吧。二:WinDbg 分析1. 为什么会卡死因为是窗体程序,理所当然就是看主线程此时正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ChildEBP RetAddr 00 00aff168 75e3bb0a win32u!NtUserP...

记一次 腾讯会议 的意外崩溃分析

一:背景1. 讲故事前段时间在用 腾讯会议 直播的时候,居然意外崩溃了,还好不是在训练营上课,不然又得重录了,崩完之后发现 腾讯会议 的 bugreport 组件会自动生成一个 minidump,截图如下: 作为一个.NET高级调试的技术博主,非 .NET 的程序也得要研究研究哈😄😄😄,有了这个好奇心,也有了这个 dump,接下来用 windbg 看一看吧。二:WinDbg 分析1. 为什么会崩...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.005931(s)
2024-05-04 00:53:56 1714755236