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 反射项目中有哪些控件时出错。
VS2013 抛出 stackoverflow exception 的追踪的更多相关文章
- dubbo rpc调用抛出的Exception处理
关于dubbo的Exception堆栈被吃处理,网上已经有比较多的解决方法,在我们的应用场景中,不希望RPC调用对方抛出业务exception,而是通过Resp中的errorCode,errorMsg ...
- 【M12】了解“抛出一个exception”与“传递一个参数”或“调用一个虚函数”之间的差异
1.方法参数的声明语法和catch语句的语法是一样的,你可能会认为主调方法调用一个方法,并向其传递参数,与抛出一个异常传递到catch语句是一样的,是的,有相同之处,但也有更大的不同. 2.主调方法调 ...
- 从constructor中抛出exception后,constructor会返回null吗?
刚才琢磨这个问题主要是在想,如果constructor抛出了exception,那么返回的object是什么一个情况呢?如果我这个object中有一些关键的资源没有初始化,比如说Database co ...
- WCF服务创建与抛出强类型SOAP Fault
原创地址:http://www.cnblogs.com/jfzhu/p/4060666.html 转载请注明出处 前面的文章<WCF服务的异常消息>中介绍过,如果WCF Service发生 ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- JAVA异常的捕获与抛出原则
在可能会出现exception的地方,要使用try-catch或者throws或者两者都要.我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-cat ...
- 【开发技术】java异常的捕获与抛出原则
在可能会出现exception的地方,要使用try-catch或者throws或者两者都要.我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-cat ...
- (转)spring异常抛出触发事务回滚策略
背景:在面试时候问到事务方法在调用过程中出现异常,是否会传递的问题,平时接触的比较少,有些懵逼. spring异常抛出触发事务回滚策略 Spring.EJB的声明式事务默认情况下都是在抛出unchec ...
- java的异常抛出和String类常用方法
一.异常抛出 异常是程序的异种非错误的意外情况,分为运行期异常(RuntimeException)和编译期异常(CheckedExcption) 处理异常可以用try——catch或自定义 impor ...
随机推荐
- 网络&热恋NSURLConnection代理及GET¥POST请求
1.NSURLConnection代理下载设置在本地的身骑着白马MP3 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional ...
- AFNetworking 3.0.4 的使用
本文永久链接:http://www.cnblogs.com/qianLL/p/5342593.html pod 'AFNetworking', '~>3.0.4' <-------第 ...
- 网络请求之JSON解析
<一>JSON的基本知识 什么是JSON:JSON的全称是JavaScript Object Notation(JavaScript对象符号),是目前使用最广泛的数据交换格式,具有跨平台. ...
- JQuery制作简单的网页导航特效
使用JQuery中hover()方法,使其根据鼠标的移动简单的改变背景颜色; hover();用于模拟鼠标指针悬停事件,当鼠标指针移动到元素上时,会触发指定的第一个函数,当鼠标指针移除这个元素时,会触 ...
- 启用Mac(OS X Yosemite)自带的apache
刚用Mac的时候配置过一次Mac自带的apache,主要是平常自己用mackdown写文档,装成html文件放到apache下方便自己和同事阅读.后来升级各种东西,估计是升级OS X导致apache不 ...
- Spring整合Junit4
1.加入相应依赖包 junit4-4.7.jar 以及spring相关jar包 2.在测试代码的源码包中如 src/test/java 新建一个抽象类如下 import org.junit.runne ...
- 机器数据的价值 - Web 访问日志和数据库审计日志
计算机数据 大量的数据流,不断增长的来源,蕴含着巨大的价值 在 Splunk,我们大量谈及计算机数据.这些数据是指在数据中心.“物联网”和互联设备世界中运行的所有系统产生的数据.其中包括支撑组织的应用 ...
- Linux hostname对Oracle实例以及监听的影响
在Linux平台中,对hostname的修改,是否对ORACLE数据库实例或监听进程有影响呢?如果有影响,又要如何解决问题呢?另外/etc/hosts下相关内容的修改,是否也会影响实例或监听呢?这里涉 ...
- mysql主从日志的定期清理
mysql主从的binlog定时删除是很重要的,一般是通过expire_logs_days = 10来设置binlog保留的天数(mysql5.0一下版本不支持),但有时这还不够,假如有几天的日志量非 ...
- Spring,hibernate,struts的面试笔试题及答案
Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation ...