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 反射项目中有哪些控件时出错。 

相关文章
相关标签/搜索