VS2013 拋出 stackoverflow exception 的追蹤

本公司使用VWG、Caslte ActiveRecord、CSLA.net 、Quantz.net 等組件作爲公司的開發基礎,自2007年以來,一直工做正常,但最近(2015.12月)以來,打開MDAA項目時,VS 老是自動 崩潰(Crashed)後,自動啓動,追蹤調試後,只獲得了 "StackOverflow", 堆棧溢出。git

  知道了這個問題,但老是找不到緣由應該如何處理:嘗試的方法有:緩存

      一、更新VS update5 ,故障依舊;spa

      二、更新 VWG 至 10.0.4,故障依舊;.net

      三、上VWG論壇中 啃英文發現有相似的問題反映,但只叫咱們 引用正確的版本,並且問題 的發生場景也不大相同,前後清理 程序集的 緩存後,重啓系統問題依舊。設計

      四、新建了 VWG 項目,並打開設計器,一切正常,百思不得其解。調試

      五、在MDAA中 有一個Form1 窗口,偶尓打開能夠成功,但過不了 一分鐘,什麼也不動,故障依舊。code

      六、懷疑 git 擴展之間有衝突,把 擴展關了,故障依舊。orm

      七、靜靜的分析了 一天,總以爲應該與VWG有關係,其它的都正常,一直在用,沒有反映出什麼問題,最近Win10自動升級後纔出現的這個問題(也不知道Windows10升級都變動了些什麼)。 blog

      八、把整個過程 反思了一遍,以爲應該是 win10自動升級後,改變了VS 或者 .net 以往類庫的加載運行方式,之前都是正常的,如今出了問題,而新建的VWG項目倒是正常的,爲何呢?開發

      九、帶着這個問題,把PSI項目打開(引用 MDAA 類庫),再打開項目中的 窗口或者用戶控件,一切OK,所以 能夠肯定問題出在 MDAA中代碼上,更確切的說出在 VWGHelper上,即VWG的擴展方法中。

最後鎖定了故障源,變動代碼爲:

 

 if( _IsCopiedEmbededSource || context == null)

{   return;   }

 

 

 

最後問題處理,一切OK,整個問題的耗時,三天。天天17小時。 這三天什麼也沒作成,您說 賣給客戶的軟件 只算最終的代碼技術含量,背後要處理相似的問題何至千百,個人客戶(上帝),算上這些付出,價格已經很是超值了。

 

問題並無徹底解決,打開設計器時,能夠打開了,但若是 要顯示 Toolbox時,VS2013 故障依舊。

  一、新建了VWG項目,新建控件、窗體都正常。

二、在控件、窗體中 添加 控件時,都正常。

三、在PSI項目中打開控件或者窗體,再顯示 ToolBox 時,也正常,但在 MDAA中 仍是 故障退出。 

四、在WinForm 中打開窗體與控件時,都是正常的。

五、至此,問題能夠確認在 MDAA VWGUI 項目中,在VS 反射項目中有哪些控件時出錯。 

相關文章
相關標籤/搜索