毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

delphi程序不报错就崩溃了

更新时间:2013-1-14:  来源:毕业论文

delphi程序不报错就崩溃了
编的一个程序,有时候执行几天没事,有时候执行几小时就崩溃了,自动关闭。
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。

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

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

访问了内存中已释放的对象时可能会崩溃

建议通过以下方法来调试:
1、去掉部分可能导致崩溃的代码,找到大概出问题的地方,重点检查调试那一部分代码
2、多加日志看看是从哪些代码跳出程序的
3、很有可能的原因是线程中的问题

多线程程序里常见,子线程在运行时内存出错就会这样,多查查你子线程里的代码,内存(对象)该手动释放的就得手动释放,最起码是保险

这类无声无息死掉有以下几种可能:
1、Statck Overflow栈溢出,这类错误主要查是否在函数体内分配了大的数组或结构体,另外检查函数递归问题;
2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;
3、内存或线程申请太多,操作系统杀掉你的程序;
4、是否访问了系统的禁区,造成了Ring 0级的错误;

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

我也有遇到过类似的问题、同样也是用了indy、在线程中有动态创建TIdHttp获取网上的内容、我为了防止获取失败造成线程的锁死、就设置了idhttp的超时、并放在try里面、结果运行没两分钟就自动管理、无任何提示、可是我只要把try语句去掉就没有问题了、这个问题我至今觉得很奇怪

死锁,内存溢出都可以导致程序或系统崩溃

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。