首页 > 其他分享 >记一次 .NET某工控视觉自动化系统 卡死分析

记一次 .NET某工控视觉自动化系统 卡死分析

时间:2024-06-06 10:47:15浏览次数:22  
标签:工控 Object System PylonBase 线程 v5 NET 00007ff8 卡死

一:背景

1. 讲故事

今天分享的dump是训练营里一位学员的,从一个啥也不会到现在分析的有模有样,真的是看他成长起来的,调试技术学会了就是真真实实自己的,话不多说,上windbg说话。

二:WinDbg 分析

1. 为什么会卡死

这位学员是从事工控大类下的视觉自动化,也是目前.NET的主战场,这个场景下大多都是WPF或者WinForm程序,不管是什么程序,先用命令 k 开路。


0:000> ~0s
ntdll!NtWaitForMultipleObjects+0x14:
00007ff8`d825cc14 c3              ret
0:000> k
 # Child-SP          RetAddr               Call Site
00 000000e4`c0cf87e8 00007ff8`d54f7ff7     ntdll!NtWaitForMultipleObjects+0x14
01 000000e4`c0cf87f0 00007ff8`83aa7585     KERNELBASE!WaitForMultipleObjectsEx+0x107
02 000000e4`c0cf8af0 00007ff8`83aa76fa     PylonBase_v5_1!Pylon::CInstantCameraArray::DestroyInstantCamera+0x78da1
03 000000e4`c0cf8bb0 00007ff8`83a188bc     PylonBase_v5_1!Pylon::CInstantCameraArray::DestroyInstantCamera+0x78f16
04 000000e4`c0cf8c30 00007ff8`83a22a70     PylonBase_v5_1!Pylon::CGrabResultPtr::IsUnique+0x16ec
05 000000e4`c0cf8cd0 00007ff8`41fee2dd     PylonBase_v5_1!Pylon::CGrabResultPtr::IsUnique+0xb8a0
06 000000e4`c0cf8d40 00007ff8`4218711b     0x00007ff8`41fee2dd
...

从卦象看真的很不吉利,因为这个等待是一个第三方的SDK库,从 DestroyInstantCamera 名字看就是 立即销毁相机,接下来我们看下 PylonBase_v5_1 是何方圣神?


0:000> lmvm PylonBase_v5_1
Browse full module list
start             end                 module name
00007ff8`839e0000 00007ff8`83b5b000   PylonBase_v5_1   (export symbols)       PylonBase_v5_1.dll
    Loaded symbol image file: PylonBase_v5_1.dll
    Image path: C:\Program Files\Basler\pylon 5\Runtime\x64\PylonBase_v5_1.dll
    Image name: PylonBase_v5_1.dll
    Browse all global symbols  functions  data
    Timestamp:        Fri Aug 24 20:41:55 2018 (5B7FFD13)
    CheckSum:         0017E66C
    ImageSize:        0017B000
    File version:     5.1.0.12681
    Product version:  5.1.0.12681
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0000.04b0
    Information from resource tables:
        CompanyName:      Basler
        ProductName:      Basler pylon
        InternalName:     PylonBase
        OriginalFilename: PylonBase.dll
        ProductVersion:   5.1.0.12681 
        FileVersion:      5.1.0.12681
        PrivateBuild:     
        SpecialBuild:     0
        FileDescription:  PylonBase Module
        LegalCopyright:   Copyright (c) 2006-2018 Basler AG - All rights reserved.
        LegalTrademarks:  
        Comments:         1d4ccf9b36037580c4655fde004335702d90d3e8

由于我是行外人,所以我好奇的查一下 Basler 是什么公司,

标签:工控,Object,System,PylonBase,线程,v5,NET,00007ff8,卡死
From: https://www.cnblogs.com/huangxincheng/p/18234656

相关文章

  • 机器视觉中常用图像处理库都有哪些?重点关注.net
     当需要做一些图像处理方面的学习和研究的时候,首要任务就是选择一套合适的图像处理类库,这期我们主要简单介绍下各家图像库的一些优缺点。OpenCV,IntelIPP,Halcon,MATLAB,OpenGL,EmguCv,AForge.net,CxImage,FreeImage,paintlib,AGG,IPL,visDSK。不足之处,还请大家多多提建议,多谢!1.OpenCV......
  • .NET Core中灵活使用反射
    前言前段时间有朋友问道一个这样的问题,.NETCore中如何通过Attribute的元数据信息来调用标记的对应方法。我第一时间想到的就是通过C#反射获取带有CustomAttribute标记的类,然后通过依赖注入(DI)的方式获取对应服务的方法并通过反射动态执行类的方法,从而实现更灵活的编程方式。......
  • Wesky.Net.Opentools库
    使用Wesky.Net.Opentools库,一行代码实现实体类类型转换为Json格式字符串 合集-OpenTools(5) 1..NET使用P/Invoke来实现注册表的增、删、改、查功能05-142..NET实现获取NTP服务器时间并同步(附带Windows系统启用NTP服务功能)05-153.工业福利!用.NET快速开发物联网扫码......
  • .NET周刊【6月第1期 2024-06-02】
    国内文章一文带你了解.NET能做什么?https://www.cnblogs.com/Can-daydayup/p/18214473.NET是一个免费、开源、跨平台的开发平台框架,广泛应用于桌面、Web、移动、云服务、游戏、物联网、大数据和人工智能等领域开发。它支持C#、VisualBasic、F#等多种编程语言,其中C#最为常用,通过......
  • .NET C# 程序自动更新组件
    .NETC#程序自动更新组件合集-临散组件封装分享(1) 1..NETC#程序自动更新组件06-05收起 引言本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,......
  • [email protected]].2700勒索病毒
     该病毒具有持续性威胁,可加密文件并窃取敏感信息。继续潜伏在计算机系统中,构成一种持续的威胁。受害者即使支付了赎金,也可能无法完全摆脱病毒的困扰。支付了赎金并获得了解密密钥,也不能保证病毒已经完全清除。病毒可能仍然隐藏在系统的某个角落,等待合适的时机再次发作。 ......
  • 使用Wesky.Net.Opentools库,一行代码实现实体类类型转换为Json格式字符串
    安装1.0.10以及以上版本的Wesky.Net.OpenTools包 包内,该功能的核心代码如下:自定义属性:实体类JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的包。如果实体类有特殊需求,例如映射为其他名称,可以用OpenJson属性来实现。实体类对象案例如下:上面实体类,提供了属性......
  • 实验15-使用RESNET完成图像分类
    model.py#-*-coding:utf-8-*-"""author:ZhouChendatetime:2019/6/259:10desc:实现模型"""fromkeras.modelsimportModelfromkeras.layersimportConv2D,MaxPooling2D,BatchNormalization,Flatten,Input,ZeroPadding2D......
  • .NET 中使用 OpenTelemetry Traces 追踪应用程序
    上一次我们讲了OpenTelemetryLogs。今天继续来说说OpenTelemetryTraces。在今天的微服务和云原生环境中,理解和监控系统的行为变得越来越重要。在当下我们实现一个功能可能需要调用了N个方法,涉及到N个服务。方法之间的调用如蜘蛛网一样。分布式追踪这个时候就至关重要。它......
  • kubernetes 集群开启审计日志
    原文链接:https://maoqide.live/posts/cloud/kubernetes-auditKubernetes审计关于Kubernetes审计的详细信息,可以查看官方文档:https://kubernetes.io/zh-cn/docs/tasks/debug-application-cluster/audit/简单来说,kube-apiserver能够记录所有请求到集群的请求和响应。根据你配......