编的一个程序,有时候执行几天没事,有时候执行几小时就崩溃了,自动关闭。
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。用的插件都是大路货,如Indy,dbgrideh,有用多线程,但没有反复创建释放。想了解,有哪些原因会导致不报错,程序会直接自动关闭?
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。用的插件都是大路货,如Indy,dbgrideh,有用多线程,但没有反复创建释放。想了解,有哪些原因会导致不报错,程序会直接自动关闭?
解决方案 »
- 求助关于delphi hook send后修改buf的问题
- 请教delphi/bcb中实现这种操作的方案
- 请教关于rtti中的GetMethodProp
- 请问VC和Delphi高手DLL的接口函数参数
- 怎么将delphi2005 中的错误信息本地化???
- 小弟刚从VB转到DELPHI,请大家介绍一个DELPHI编程的好站点
- 如何去除文件夹的系统属性阿!
- 请问 如何在delphi中修改toolbutton上的图片和字体?
- 大家好:如何动态的打印报表,就是说要几个字段打印几个字段!谢意
- 关于OpenDialog
- FrxReport打印图片
- datasnap clientdataset missing dataprovider
1、Statck Overflow栈溢出,这类错误主要查是否在函数体内分配了大的数组或结构体,另外检查函数递归问题;
2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;
3、内存或线程申请太多,操作系统杀掉你的程序;
4、是否访问了系统的禁区,造成了Ring 0级的错误;建议输出一些运行日志,看程序是在那一步死掉的,另外如果是多线程程序,程序不稳定可以从查并发入手。
“1、Statck Overflow栈溢出,”这个是要报错的吧?“另外检查函数递归问题;”没有使用递归。“2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;”我是应用程序,不是服务,应该报错吧。
“3、内存或线程申请太多,操作系统杀掉你的程序;”这个有可能,我现在虽然使用了多线程,但程序启动就申请,结束才释放,中间没有再申请了。(为了排除IDHTTP的可能,我又换用了AUHTTP,它会每次访问都申请并释放一次线程,从监视的任务管理器看到,没有出现一直增加线程的情况)
有办法查到当前程序的线程数和内容使用吗,这样我可以把它输出到日志里,因为每次人工监视时都没出问题,看任务管理器里的内存、线程又很正常;
4、是否访问了系统的禁区,造成了Ring 0级的错误;这种情况,会不会在系统日志里留下记录?我查看了系统事件,没有相关信息。