调试应用程序时,关闭应用程序就弹出一个异常提示窗口。提示窗口的内容为“Exception EInvalidPointer in module OceanProject.exe at 00002864. Invalid pointer operation”。查看CPU,发现断点停留在系统SysReallocMem的FreeMem部分,可能是内存释放出错。但是不知道该如何定位源代码哪个部分出错了?应用程序是一个多文档窗口,子窗口为手动创建的,子窗口关闭时手动释放,而对话框为手动创建,也是对话框关闭时就手动释放。这个问题,不是随时都可以出现的,而是随机出现。请教各位大侠,该如何分析和解决?
解决方案 »
- VB转DELPHI不习惯请教一个小问题,过程怎么调用?
- 请问一下:如何去掉MDIChildForm标题上的还原按钮?
- ***怎样才能防止在(dsInster,dsEdit) 下去移动DBGrideh,提示保存 或 在dsInserter,dsEdit)状态下不能去移动DBGrid,只能在(dsBrower) 下才
- 散分!
- 请大虾帮我修改一下密码登陆的问题
- 我想重写控件的外观,谁能告诉我方法
- 关于在DBGrid中绘色的问题!
- 关于动态创建控件的问题,高分相送!!!!
- 请教各位大虾,delphi如何写OCX控件???
- socket问题,谁能回答我?
- DBListBox控件问题!
- delphi内存占用
或者dispose
函数
主要指针释放的地方是VCL的代码部分释放,自己的应用程序没用释放指针的代码。
请教各位大侠,在开发中都使用啥工具检查内存问题?谢谢。
dispose(p) or freemem(p);
后面,在窗口的关闭中,第一个操作就先把执行串口发送数据的操作的定时器关闭。这样,问题就不会重现。
多谢15楼的大侠,提供的工具,还有感谢各位大侠的帮助。