一:背景 1. 講故事 前些天有位朋友找到我,說他們的程序崩潰了,也自己分析了下初步結(jié)果,讓我?guī)兔υ俅_認(rèn)下,既然讓我確認(rèn),那就開始dump分析之旅吧。 二:WinDbg 分析 1. 為什么會(huì)崩潰 windbg 有一個(gè)強(qiáng)大之處就是帶有一個(gè)自動(dòng)化的分析命令 !analyze -v 可以幫助我們快速的分析
前幾天,一位朋友找到我,向我求助。他們的程序崩潰了,經(jīng)過初步分析,他懷疑是Avalonia框架的問題。于是我決定使用WinDbg進(jìn)行dump分析來確認(rèn)崩潰的原因。
這是一個(gè)關(guān)于WinDbg分析的故事。
朋友發(fā)現(xiàn)他們的程序崩潰了,經(jīng)過初步分析,懷疑是Avalonia框架的問題,于是找到我?guī)兔Υ_認(rèn)。
通過使用WinDbg的命令
!analyze -v
進(jìn)行分析,得到異常碼
通過查看異常上下文,定位到RaiseException的父函數(shù),并從異常信息全局變量
g_SavedExceptionInfo
中獲得真實(shí)的異常碼
根據(jù)匯編代碼分析,崩潰是由Avalonia框架的
RequestCompositionBatchCommitAsync
返回null引起的。進(jìn)一步搜索代碼,發(fā)現(xiàn)這是Avalonia的一個(gè)bug。
在類中找到會(huì)設(shè)置null的方法,確認(rèn)了這是Avalonia框架的問題。而該版本是非常新的11.1.0.0版本。
鑒于是Avalonia框架的問題,并且該版本非常新,只能向Avalonia的官方提交issue,解決該bug。
這次的生產(chǎn)事故分析讓我對Avalonia框架有了更深入的了解。對Avalonia是否開始替代WPF在工控行業(yè)中的應(yīng)用也產(chǎn)生了好奇。但就目前來看,穩(wěn)定性方面與WPF相比還有一定差距。期待Avalonia未來能發(fā)布更加穩(wěn)定的版本。
小編推薦閱讀機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)