<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      記一次 .NET 某光放測(cè)試系統(tǒng) 崩潰分析

      一:背景

      1. 講故事

      微信好友里有位朋友找到我,說(shuō)他部署在windows上的程序,用debug模式正常,但用 release 模式跑程序就崩潰,如果把程序切到 .NET6 的話又都正常,所以很迷茫,讓我看看怎么回事,哈哈,這種問(wèn)題直接抓dump分析就好了。

      二:崩潰分析

      1. 為什么會(huì)崩潰

      分析過(guò)崩潰程序的朋友應(yīng)該知道,不管是托管還是非托管崩潰,先用 !analyze -v 命令開(kāi)路,簡(jiǎn)化輸出如下:

      
      0:000> !analyze -v
      *******************************************************************************
      *                                                                             *
      *                        Exception Analysis                                   *
      *                                                                             *
      *******************************************************************************
      
      CONTEXT:  (.ecxr)
      rax=0000000000000004 rbx=000001e34b283ec0 rcx=0000000000000228
      rdx=0000000000000000 rsi=000001e34ac2f4e0 rdi=000001e34ab58e70
      rip=00007ff95ac53659 rsp=0000007735d7e1c0 rbp=0000007735d7e1e0
       r8=0000000000000000  r9=000001e3464ba1c0 r10=0000000000000228
      r11=0000000000000228 r12=0000000000000000 r13=000001e34880eae8
      r14=000001e34ab58e70 r15=0000000000000008
      iopl=0         nv up di pl nz na pe nc
      cs=0000  ss=0000  ds=0000  es=0000  fs=0000  gs=0000             efl=00000000
      System_Private_CoreLib!System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw+0x39:
      00007ff9`5ac53659 cc              int     3
      Resetting default scope
      
      EXCEPTION_RECORD:  (.exr -1)
      ExceptionAddress: 00007ff95ac53659 (System_Private_CoreLib!System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw+0x0000000000000039)
         ExceptionCode: e0434f4d (CLR exception)
        ExceptionFlags: 00000000
      NumberParameters: 0
      ...
      
      

      從卦中的 ExceptionCode: e0434f4d (CLR exception) 來(lái)看,這是一個(gè)經(jīng)典的托管異常,既然是托管異常,這個(gè)問(wèn)題就比較簡(jiǎn)單了,使用 !t 找下到底是哪一個(gè)托管線程拋的,輸出如下:

      
      0:000> !t
      ThreadCount:      15
      UnstartedThread:  0
      BackgroundThread: 11
      PendingThread:    0
      DeadThread:       3
      Hosted Runtime:   no
                                                                                                                  Lock  
       DBG   ID     OSID ThreadOBJ           State GC Mode     GC Alloc Context                  Domain           Count Apt Exception
         0    1     81d8 000001E3464BA1C0    a6028 Preemptive  000001E34ABA2340:000001E34ABA3D30 000001e347fc40b0 -00001 STA Prism.Ioc.ContainerResolutionException 000001e34a986608
         6    2     448c 000001E34803A440    2b228 Preemptive  000001E34A876980:000001E34A8784B0 000001e347fc40b0 -00001 MTA (Finalizer) 
         ...
      
      

      從卦中的 Prism.Ioc.ContainerResolutionException 來(lái)看,貌似是和 Prism 有關(guān),接下來(lái)可以用 !pe 命令觀察調(diào)用棧詳情。

      
      0:000> !pe
      Exception object: 000001e34a986608
      Exception type:   Prism.Ioc.ContainerResolutionException
      Message:          An unexpected error occurred while resolving 'xxx.Views.LoginWindow'
      InnerException:   Unity.ResolutionFailedException, Use !PrintException 000001E34A986228 to see more.
      StackTrace (generated):
          SP               IP               Function
          0000007735D668E0 00007FF95A64DEC8 Prism_Unity_Wpf!Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])+0x2a8
          0000007735D7DC60 00007FF95A64DBFD Prism_Unity_Wpf!Prism.Unity.UnityContainerExtension.Resolve(System.Type)+0x3d
          0000007735D7DCA0 00007FF95A64DB88 Prism!Prism.Ioc.IContainerProviderExtensions.Resolve[[System.__Canon, System.Private.CoreLib]](Prism.Ioc.IContainerProvider)+0x48
          0000007735D7DCF0 00007FF95A956742 xxx!xxx.App.InitializeShell(System.Windows.Window)+0x42
          0000007735D7DD40 00007FF959B21148 Prism_Wpf!Prism.PrismApplicationBase.Initialize()+0x208
          0000007735D7DDA0 00007FF959B20F17 xxx!xxx.App.<>n__0()+0x17
          ....
      
      

      從卦象來(lái)看,這不是最原始的異常,言外之意就是下面還有子異常,也只有找到最里層的異常才能發(fā)現(xiàn)災(zāi)難的禍根,經(jīng)過(guò)一層層的下鉆,最后找到了最原始的異常,參考如下:

      
      0:000> !PrintException /d 000001E34A97E940
      Exception object: 000001e34a97e940
      Exception type:   System.PlatformNotSupportedException
      Message:          System.IO.Ports is currently only supported on Windows.
      InnerException:   <none>
      StackTrace (generated):
          SP               IP               Function
          0000007735D7B580 00007FF95A9588E7 System_IO_Ports!System.IO.Ports.SerialPort.GetPortNames()+0x47
          0000007735D7B5C0 00007FF95A958859 xxx!xxx.ViewModels.LoginWindowViewModel.RefreshComs()+0x19
          0000007735D7B600 00007FF95A957FBC xxx!xxx.ViewModels.LoginWindowViewModel..ctor()+0x14c
          0000007735D7B9D0 0000000000000000 System_Private_CoreLib!System.RuntimeMethodHandle.InvokeMethod(System.Object, Void**, System.Signature, Boolean)+0x46a770b0
          0000007735D7B9D0 00007FF9B8C03106 System_Private_CoreLib!System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(System.Object, System.Reflection.BindingFlags)+0x36
      
      StackTraceString: <none>
      HResult: 80131539
      
      

      從卦中來(lái)看是 GetPortNames() 方法拋出來(lái)的平臺(tái)不支持異常,這就很迷惑了。

      2. 為什么會(huì)平臺(tái)不支持

      了解 PlatformNotSupportedException 異常,只能尋找相關(guān)的源代碼了,通過(guò)dnspy截圖如下:

      從卦中來(lái)看這是一個(gè)空方法,接下來(lái)拿這個(gè)異常在網(wǎng)上找下資料,看樣子是這位朋友需要升級(jí)或者降級(jí) system.io.ports 的版本,截圖如下:

      完整鏈接:https://learn.microsoft.com/en-us/answers/questions/1621393/system-io-ports-only-availble-on-windows-but-im-us

      本來(lái)是很興奮的,以為是類似多線程操控非 volatile 變量導(dǎo)致的debug和release行為不一致呢,結(jié)果是這玩意,害!

      三:總結(jié)

      本次故障相對(duì)比較簡(jiǎn)單,對(duì)我們這些老手來(lái)說(shuō)簡(jiǎn)直是 1+1,但我們何嘗不是從新手練過(guò)來(lái)的,所以本篇是初學(xué)者很好的一個(gè)練手素材。

      圖片名稱
      posted @ 2025-10-23 11:44  一線碼農(nóng)  閱讀(421)  評(píng)論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲第一二三区日韩国产| 欧美综合自拍亚洲综合图| 强奷漂亮少妇高潮麻豆| 国产精品福利自产拍在线观看| av在线中文字幕不卡电影网| 成全影视大全在线观看| 国内少妇偷人精品免费| 国模肉肉视频一区二区三区| 欧美怡春院一区二区三区| 中国亚州女人69内射少妇| 青青草无码免费一二三区| 久久综合综合久久综合| 成人午夜大片免费看爽爽爽| 无码一区二区三区免费| 久久久久国产精品熟女影院| 少妇人妻偷人精品无码视频| 天堂V亚洲国产V第一次| 久久中文字幕无码一区二区| 国产精品大片中文字幕| 久草热大美女黄色片免费看| 高清国产av一区二区三区| 欧美视频在线播放观看免费福利资源| 亚洲日韩精品一区二区三区| 人妻中文字幕不卡精品| 日韩卡一卡2卡3卡4卡| 无码AV无码免费一区二区| 中国极品少妇xxxxx| 少妇撒尿一区二区在线视频| 亚洲欧洲日韩国内精品| 好吊视频一区二区三区人妖| 中文文字幕文字幕亚洲色| 亚洲熟妇自偷自拍另亚洲| 亚洲综合一区二区三区视频| 免费网站看V片在线毛| 国产性色的免费视频网站| 色综合久久综合香蕉色老大| 白白发布视频一区二区视频| 亚洲综合色婷婷中文字幕| 久久精品国产免费观看频道| 日本一级午夜福利免费区| 国产熟睡乱子伦视频在线播放|