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 ...
随机推荐
- iOS中的过期方法和新的替代方法
关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ...
- redis配置文件参数说明及命令操作
redis下载地址:https://github.com/MSOpenTech/redis/releases. Redis 的配置文件位于 Redis 安装目录下,文件名为redis.windows. ...
- Android Build Error(1)
Type 1 —— Build Path Problem : **.jar包文件缺失 1.在Android项目根目录下新建一个libs文件夹: 2.把你需要的导入的第三方Jar包复制进这个目录: 3. ...
- lvm[12446]: Another thread is handling an event. Waiting
在检查一Linux服务器时,发现日志里面有大量"lvm[12446]: Another thread is handling an event. Waiting..." Jul ...
- C#语言——类
C#——类 一.String 类 系统内置的处理字符串类型的函数方法类.方便我们对字符串类型进行一系列的处理. 1.Length:获取字符串的长度,返回一个int类型的值 string x=Conso ...
- 0016 Java学习笔记-异常-如果try-catch-finally中都存在return语句会怎样?
上午在搜索"System.runFinalization"的时候,搜到 http://www.cnblogs.com/Skyar/p/5962253.html ,其中有关于try- ...
- HBase应用开发回顾与总结系列之四:HBase配置管理类接口设计
利用Eclipse进行HBase应用开发时,至少需要确定三个配置信息,如下表所示: #hbase config #HMaster服务部署主机及端口号 hbase.master=hdp-wuyong ...
- php cli方式下获取服务器ip
(未整理....) (1)php cli方式下获取服务器ip [php] function getServerIp(){ $ss = exec('/sbin/ifconfig et ...
- delphi 相对路径
..代表上级目录 .代表当前目录 \代表目录分隔 ..\..\表上上一级目录
- 使用Openswan接入Windows Azure Site to Site VPN
Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...