一:背景 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)事故分析讓我對(duì)Avalonia框架有了更深入的了解。對(duì)Avalonia是否開始替代WPF在工控行業(yè)中的應(yīng)用也產(chǎn)生了好奇。但就目前來看,穩(wěn)定性方面與WPF相比還有一定差距。期待Avalonia未來能發(fā)布更加穩(wěn)定的版本。
小編推薦閱讀count(*)、count(1)哪個(gè)更快?面試必問:通宵整理的十道經(jīng)典MySQL必問面試題
閱讀從需求分析、產(chǎn)品設(shè)計(jì)到部署交付各階段說明
閱讀如何利用七牛云進(jìn)行數(shù)據(jù)備份和刪除
閱讀強(qiáng)化學(xué)習(xí)筆記之【ACE:Off-PolicyActor-CriticwithCausality-AwareEntropyRegularization】
閱讀使用MailKit在.NET Core中收發(fā)郵件的完整示例
閱讀WiFi基礎(chǔ)(六):天線基礎(chǔ)知識(shí)
閱讀OpenAI官方開源多智能體框架Swarm,社區(qū)反響熱烈
閱讀Vue-Vben-Admin:功能強(qiáng)大的Vue3后臺(tái)管理系統(tǒng)模板
閱讀深度解析Spring AI:請(qǐng)求與響應(yīng)機(jī)制的核心邏輯
閱讀.NET云原生應(yīng)用實(shí)踐(一):從搭建項(xiàng)目框架結(jié)構(gòu)開始
閱讀llama.cpp:一個(gè)適用于中小型研發(fā)企業(yè)的高性能CPU/GPU大語(yǔ)言模型推理框架
閱讀Windows應(yīng)急響應(yīng)-Auto病毒
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2024 haote.com 好特網(wǎng)