首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求教,什么情况上程序才会崩溃,不报错自动关闭

2013-01-23 
求教,什么情况下程序才会崩溃,不报错自动关闭?编的一个程序,有时候执行几天没事,有时候执行几小时就崩溃了

求教,什么情况下程序才会崩溃,不报错自动关闭?
编的一个程序,有时候执行几天没事,有时候执行几小时就崩溃了,自动关闭。
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。

用的插件都是大路货,如Indy,dbgrideh,有用多线程,但没有反复创建释放。

想了解,有哪些原因会导致不报错,程序会直接自动关闭?


[解决办法]
访问了内存中已释放的对象时可能会崩溃

建议通过以下方法来调试:
1、去掉部分可能导致崩溃的代码,找到大概出问题的地方,重点检查调试那一部分代码
2、多加日志看看是从哪些代码跳出程序的
3、很有可能的原因是线程中的问题
[解决办法]
做了什么关键事情后,写入日志
以便事后跟踪分析:什么事情后才会。。。。。。。。。
[解决办法]
多线程程序里常见,子线程在运行时内存出错就会这样,多查查你子线程里的代码,内存(对象)该手动释放的就得手动释放,最起码是保险
[解决办法]
这类无声无息死掉有以下几种可能:
1、Statck Overflow栈溢出,这类错误主要查是否在函数体内分配了大的数组或结构体,另外检查函数递归问题;
2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;
3、内存或线程申请太多,操作系统杀掉你的程序;
4、是否访问了系统的禁区,造成了Ring 0级的错误;

建议输出一些运行日志,看程序是在那一步死掉的,另外如果是多线程程序,程序不稳定可以从查并发入手。

热点排行