一:背景 1.讲故事 最近分享了好几篇关于 非托管内存泄漏 的文章,有时候就是这么神奇,来求助的都是这类型的dump,一饮一啄,莫非前定.让我被迫加深对 NT堆, 页堆 的理解,这一篇就给大家再带来一篇内存泄漏. 前段时间有位朋友找到我,说他的程序出现了非托管泄漏,某一块的操作会导致非托管内存上涨的很快,让我帮忙逆向看下是哪里的操作没有释放资源? 既然找到我,那就上 WinDbg 分析吧. 二:WinDbg 分析 1. 哪里的内存泄漏 看内存泄漏还是老规矩,使用 !address -summar…
一:背景 1. 讲故事 前几天有位朋友在 B站 加到我,说他的程序出现了 线程数 爆高的问题,让我帮忙看一下怎么回事,截图如下: 说来也奇怪,这些天碰到了好几起关于线程数无缘无故的爆高,不过那几个问题比这一篇要复杂的多,主要涉及到非托管层面,分享这一篇的目的主要是它很有代表性,很有必要. 闲话不多说,既然线程数爆高,那就上 windbg 说话. 二:WinDbg 分析 1. 线程数真的高吗 既然说线程数高,那到底有多少呢? 我们可以用 !t 命令看一下. 0:000> !t ThreadCoun…
一:背景 1. 讲故事 前段时间遇到了好几起关于窗体程序的 进程加载锁 引发的 程序卡死 和 线程暴涨 问题,这种 dump 分析难度较大,主要涉及到 Windows操作系统 和 C++ 的基础知识,所以有必要简单整理和大家分享一下,上 windbg 说话. 二:WinDbg 分析 1. 主线程此时在做什么 窗体程序的卡死,入口分析点在 主线程 上,使用 ~0s; k 命令即可. 0:000> ~0s; k ntdll!NtWaitForSingleObject+0x14: 00007ffc`6…
PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发.开发者不用去学习那些没有用的脚本语言,借助Visual Studio对多语言的支持.比如:C#.VB.C++.F#.JS.J#.Python等.你只需要使用你最熟悉的那门语言,就可以对PCHMI进行复杂的二次开发.当然这不是PCHMI的初衷,作者已经将工业组态中最常用的功能进行了模块化封装.开发者只…
一:背景 1. 讲故事 说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我. 无数次的听说用 Unity 可做游戏开发,但百闻不如一见. 游戏中有很多金庸武侠小说才有的名字,太赏心悦目了. 000000df315978a8 0 3 玉骨扇 000000df31597cd8 0 3 云龙枪 000000df31596d88 0 3 阴风爪 000000df315967a8 0 4 雪魂丝链 000000df31596ad0 0 4 乙木神剑 000000df315960…
一:背景 1. 讲故事 上个月有位朋友找到我,说他的程序出现了内存泄漏,不知道如何进一步分析,截图如下: 朋友这段话已经说的非常言简意赅了,那就上 windbg 说话吧. 二:Windbg 分析 1. 到底是哪一方面的泄漏 根据朋友描述,程序运行一段时间后,内存就炸了,应该没造成人员伤亡,不然也不会跟我wx聊天了,这里可以用 .time 看看当前的 process 跑了多久. 0:000> .time Debug session time: Thu Oct 21 14:54:39.000 202…
对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像更精细.笔者认为最好用的工控控件当属 Iocomp 和 ProEssentials.下面笔者对这两个工控控件进行了简单的对比评测: Iocomp工控仪表 Iocomp公司可以说是工业仪表盘控件的龙头老大,在国内工业自动化集成商中,尤其是OPC项目,采用Iocomp产品进行仪表设计的项目越来越多…
一.   引子 写这个开源系列已经十来篇了.自从十年前注册博客园以来,关注了张善友.老赵.xiaotie.深蓝色右手等一众大牛,也围观了逗比的吉日嘎啦.精密顽石等形形色色的园友.然而整整十年一篇文章都没有写过,属于非常努力的在社区汲取营养的菜青虫一只,现在也算破茧而出了,虽然远没有得道化蝶的境界,也在写作过程中得到不少提升.我开源的这个项目也有我固有的不良代码风格:严重缺乏注释,一方面是懒,一方面因为是单兵作战,也未曾想过让别人理解自己的代码.如何用简洁明了的方式表达自己的思路,虽然烧脑,但得到…
Wireshark是一个强大开源流量与协议分析工具,除了传统网络协议解码外,还支持众多主流和标准工控协议的分析与解码. 序号 协议类型 源码下载 简介 1 Siemens S7 https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-s7comm.c 西门子PLC支持的通讯协议 2 MMS(IEC61850) https://github.com/wireshark/wireshark/tree/mast…
转载地址:http://blog.sina.com.cn/s/blog_669692a601016i5f.html     工控老鬼提醒以下的信息和资料可能不全或者不准确,如有疑问可以查阅西门子中国网站相关文档. 西门子S7200PLC,是西门子simatic S7系列中的小型PLC产品,至问世以来已经得到了市场的广泛认可.西门子公司根据中国市场需求于 2005 年 12 月 16 日正式发布了 S7-200 CN 系列产品.产品系列中包括 S7-200 CN CPU 和 S7-200 CN E…