VS2013 抛出 stackoverflow exception 的追踪

本公司使用VWG、Caslte ActiveRecord、CSLA.net 、Quantz.net 等组件做为公司的开发基础,自2007年以来,一直工作正常,但最近(2015.12月)以来,打开MDAA项目时,VS 总是自动 崩溃(Crashed)后,自动启动,追踪调试后,只得到了 "StackOverflow", 堆栈溢出。

  知道了这个问题,但总是找不到原因应该如何处理:尝试的方法有:

      1、更新VS update5 ,故障依旧;

      2、更新 VWG 至 10.0.4,故障依旧;

      3、上VWG论坛中 啃英文发现有类似的问题反映,但只叫我们 引用正确的版本,而且问题 的发生场景也不大相同,先后清理 程序集的 缓存后,重启系统问题依旧。

      4、新建了 VWG 项目,并打开设计器,一切正常,百思不得其解。

      5、在MDAA中 有一个Form1 窗口,偶尓打开可以成功,但过不了 一分钟,什么也不动,故障依旧。

      6、怀疑 git 扩展之间有冲突,把 扩展关了,故障依旧。

      7、静静的分析了 一天,总觉得应该与VWG有关系,其它的都正常,一直在用,没有反映出什么问题,最近Win10自动升级后才出现的这个问题(也不知道Windows10升级都变更了些什么)。 

      8、把整个过程 反思了一遍,觉得应该是 win10自动升级后,改变了VS 或者 .net 以往类库的加载运行方式,以前都是正常的,现在出了问题,而新建的VWG项目却是正常的,为什么呢?

      9、带着这个问题,把PSI项目打开(引用 MDAA 类库),再打开项目中的 窗口或者用户控件,一切OK,因此 可以确定问题出在 MDAA中代码上,更确切的说出在 VWGHelper上,即VWG的扩展方法中。

最后锁定了故障源,变更代码为:

 

 if( _IsCopiedEmbededSource || context == null)

{   return;   }

 

 

 

最后问题处理,一切OK,整个问题的耗时,三天。每天17小时。 这三天什么也没做成,您说 卖给客户的软件 只算最终的代码技术含量,背后要处理类似的问题何至千百,我的客户(上帝),算上这些付出,价格已经非常超值了。

 

问题并没有完全解决,打开设计器时,可以打开了,但如果 要显示 Toolbox时,VS2013 故障依旧。

  1、新建了VWG项目,新建控件、窗体都正常。

2、在控件、窗体中 添加 控件时,都正常。

3、在PSI项目中打开控件或者窗体,再显示 ToolBox 时,也正常,但在 MDAA中 还是 故障退出。 

4、在WinForm 中打开窗体与控件时,都是正常的。

5、至此,问题可以确认在 MDAA VWGUI 项目中,在VS 反射项目中有哪些控件时出错。 

 

转载于:https://www.cnblogs.com/yyj/p/5068601.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值