翼度科技»论坛 编程开发 .net 查看内容

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

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
一:背景

1. 讲故事

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

1. 为什么会卡死

这位学员是从事工控大类下的视觉自动化,也是目前.NET的主战场,这个场景下大多都是WPF或者WinForm程序,不管是什么程序,先用命令 k 开路。
  1. 0:000> ~0s
  2. ntdll!NtWaitForMultipleObjects+0x14:
  3. 00007ff8`d825cc14 c3              ret
  4. 0:000> k
  5. # Child-SP          RetAddr               Call Site
  6. 00 000000e4`c0cf87e8 00007ff8`d54f7ff7     ntdll!NtWaitForMultipleObjects+0x14
  7. 01 000000e4`c0cf87f0 00007ff8`83aa7585     KERNELBASE!WaitForMultipleObjectsEx+0x107
  8. 02 000000e4`c0cf8af0 00007ff8`83aa76fa     PylonBase_v5_1!Pylon::CInstantCameraArray::DestroyInstantCamera+0x78da1
  9. 03 000000e4`c0cf8bb0 00007ff8`83a188bc     PylonBase_v5_1!Pylon::CInstantCameraArray::DestroyInstantCamera+0x78f16
  10. 04 000000e4`c0cf8c30 00007ff8`83a22a70     PylonBase_v5_1!Pylon::CGrabResultPtr::IsUnique+0x16ec
  11. 05 000000e4`c0cf8cd0 00007ff8`41fee2dd     PylonBase_v5_1!Pylon::CGrabResultPtr::IsUnique+0xb8a0
  12. 06 000000e4`c0cf8d40 00007ff8`4218711b     0x00007ff8`41fee2dd
  13. ...
复制代码
从卦象看真的很不吉利,因为这个等待是一个第三方的SDK库,从 DestroyInstantCamera 名字看就是 立即销毁相机,接下来我们看下 PylonBase_v5_1 是何方圣神?
  1. 0:000> lmvm PylonBase_v5_1
  2. Browse full module list
  3. start             end                 module name
  4. 00007ff8`839e0000 00007ff8`83b5b000   PylonBase_v5_1   (export symbols)       PylonBase_v5_1.dll
  5.     Loaded symbol image file: PylonBase_v5_1.dll
  6.     Image path: C:\Program Files\Basler\pylon 5\Runtime\x64\PylonBase_v5_1.dll
  7.     Image name: PylonBase_v5_1.dll
  8.     Browse all global symbols  functions  data
  9.     Timestamp:        Fri Aug 24 20:41:55 2018 (5B7FFD13)
  10.     CheckSum:         0017E66C
  11.     ImageSize:        0017B000
  12.     File version:     5.1.0.12681
  13.     Product version:  5.1.0.12681
  14.     File flags:       0 (Mask 3F)
  15.     File OS:          40004 NT Win32
  16.     File type:        2.0 Dll
  17.     File date:        00000000.00000000
  18.     Translations:     0000.04b0
  19.     Information from resource tables:
  20.         CompanyName:      Basler
  21.         ProductName:      Basler pylon
  22.         InternalName:     PylonBase
  23.         OriginalFilename: PylonBase.dll
  24.         ProductVersion:   5.1.0.12681
  25.         FileVersion:      5.1.0.12681
  26.         PrivateBuild:     
  27.         SpecialBuild:     0
  28.         FileDescription:  PylonBase Module
  29.         LegalCopyright:   Copyright (c) 2006-2018 Basler AG - All rights reserved.
  30.         LegalTrademarks:  
  31.         Comments:         1d4ccf9b36037580c4655fde004335702d90d3e8
复制代码
由于我是行外人,所以我好奇的查一下 Basler 是什么公司,
来源:https://www.cnblogs.com/huangxincheng/p/18234656
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具