windows 程序无故闪退(开发)
-
今天做c#前台项目遇到一个问题,后得以解决,在此记录一下。
-
问题描述
- visual studio 启动 .net 项目后,进行双击页面跳转时,程序总是无故闪退,没有任何报错。
-
问题解决步骤
- 程序闪退,首先查看了windows event viewer 中的application 日志,看看错误的信息是什么,我这次的错误代码是0xc00000fd,去网上搜索发现此错误为 stack over flow,堆栈溢出。
- 知道是堆栈溢出后,猜想应该是有什么循环结束不了,或者是对象一直相互调用。
- 然后在对出现问题的地方进行debug,看具体是哪一步出问题,然后发现在grid中new form时出现循环调用。
- 修改循环调用的代码。
- 程序可以正常运行。
-
总结思考学习:
- windows 有application、system、security 等日志信息,出现问题时首先查看日志信息。
- 像这种程序无缘无故闪退,十有八九是堆栈溢出,即程序中循环无法正确结束,或者是对象相互调用形成死锁,最后就会将系统的堆栈空间撑爆,程序闪退。