一:背景 1. 講故事 前些天有位朋友找到我,說他們的程序崩潰了,也自己分析了下初步結(jié)果,讓我?guī)兔υ俅_認下,既然讓我確認,那就開始dump分析之旅吧。 二:WinDbg 分析 1. 為什么會崩潰 windbg 有一個強大之處就是帶有一個自動化的分析命令 !analyze -v 可以幫助我們快速的分析
前幾天,一位朋友找到我,向我求助。他們的程序崩潰了,經(jīng)過初步分析,他懷疑是Avalonia框架的問題。于是我決定使用WinDbg進行dump分析來確認崩潰的原因。
這是一個關(guān)于WinDbg分析的故事。
朋友發(fā)現(xiàn)他們的程序崩潰了,經(jīng)過初步分析,懷疑是Avalonia框架的問題,于是找到我?guī)兔Υ_認。
通過使用WinDbg的命令
!analyze -v
進行分析,得到異常碼
通過查看異常上下文,定位到RaiseException的父函數(shù),并從異常信息全局變量
g_SavedExceptionInfo
中獲得真實的異常碼
根據(jù)匯編代碼分析,崩潰是由Avalonia框架的
RequestCompositionBatchCommitAsync
返回null引起的。進一步搜索代碼,發(fā)現(xiàn)這是Avalonia的一個bug。
在類中找到會設置null的方法,確認了這是Avalonia框架的問題。而該版本是非常新的11.1.0.0版本。
鑒于是Avalonia框架的問題,并且該版本非常新,只能向Avalonia的官方提交issue,解決該bug。
這次的生產(chǎn)事故分析讓我對Avalonia框架有了更深入的了解。對Avalonia是否開始替代WPF在工控行業(yè)中的應用也產(chǎn)生了好奇。但就目前來看,穩(wěn)定性方面與WPF相比還有一定差距。期待Avalonia未來能發(fā)布更加穩(wěn)定的版本。
小編推薦閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)