编的一个程序,有时候执行几天没事,有时候执行几小时就崩溃了,自动关闭。
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。用的插件都是大路货,如Indy,dbgrideh,有用多线程,但没有反复创建释放。想了解,有哪些原因会导致不报错,程序会直接自动关闭?
用FASTMM跟踪不报错、用eurekalog跟踪不报错,打开Map也没记录。用的插件都是大路货,如Indy,dbgrideh,有用多线程,但没有反复创建释放。想了解,有哪些原因会导致不报错,程序会直接自动关闭?
解决方案 »
- 请教两个cxgrid同步滚动问题!
- 请问怎么用sendmessage 或 postmessage 发消息 通知一个窗体来隐藏或显示 ?
- 谁知道adoconnection的open时,如果服务器关闭,会触发哪个异常?
- 如何把字符转换成窗体类名???高分相送在线等待!!!
- 请教这段程序干什么得阿
- Tdxdbgrid是一个什么样的东东,收费吗
- 怎样在数据库中删除dbgrid中选定的记录
- 我想请教一些Delphi操作Doc文档的问题,有点急100分。
- nokia新测试
- 希望能在csdn结识IT高手,以能在中国IT界尽一份努力
- FrxReport打印图片
- datasnap clientdataset missing dataprovider
1、Statck Overflow栈溢出,这类错误主要查是否在函数体内分配了大的数组或结构体,另外检查函数递归问题;
2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;
3、内存或线程申请太多,操作系统杀掉你的程序;
4、是否访问了系统的禁区,造成了Ring 0级的错误;建议输出一些运行日志,看程序是在那一步死掉的,另外如果是多线程程序,程序不稳定可以从查并发入手。
“1、Statck Overflow栈溢出,”这个是要报错的吧?“另外检查函数递归问题;”没有使用递归。“2、有未截获的异常处理,这类错误如果是服务也会无声无息死掉,应用程序一般会弹错误框;”我是应用程序,不是服务,应该报错吧。
“3、内存或线程申请太多,操作系统杀掉你的程序;”这个有可能,我现在虽然使用了多线程,但程序启动就申请,结束才释放,中间没有再申请了。(为了排除IDHTTP的可能,我又换用了AUHTTP,它会每次访问都申请并释放一次线程,从监视的任务管理器看到,没有出现一直增加线程的情况)
有办法查到当前程序的线程数和内容使用吗,这样我可以把它输出到日志里,因为每次人工监视时都没出问题,看任务管理器里的内存、线程又很正常;
4、是否访问了系统的禁区,造成了Ring 0级的错误;这种情况,会不会在系统日志里留下记录?我查看了系统事件,没有相关信息。