【发布时间】:2011-07-14 00:38:00
【问题描述】:
我正在为 Windows 开发一个应用程序,使用 Windows XP 机器进行开发。该应用程序在 Windows XP 上运行正常,没有任何内存泄漏。但是,在 Windows 7 Home Premium 机器上运行会给我带来问题,但只是有时。
我正在开发一个使用 OpenCV 和 OpenGL 的 Qt 应用程序,它只在 W7 中从网络摄像头播放视频一段时间后崩溃。错误如下:
Problem signature:
Problem Event Name: APPCRASH
Application Name: QtRIC.exe
Application Version: 0.0.0.0
Application Timestamp: 4e6ff3a5
Fault Module Name: MSVCR90.dll
Fault Module Version: 9.0.30729.4940
Fault Module Timestamp: 4ca2ef57
Exception Code: c0000005
Exception Offset: 00024651
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
我已阅读other questions 表明问题出在 Windows 注册表上,但我不确定如何解决此问题。它只是在这个版本的 Windows 7 中崩溃(有时)。谢谢!
【问题讨论】:
-
相当大胆的声明,您的应用没有内存泄漏
-
@hexa,也许,至少我检查了我的部分代码,我找不到任何内存泄漏。它也会在某些时候在 XP 中崩溃,或者增加使用的内存,这不会发生。无论如何,谢谢。
-
上次我在 Qt 应用程序中使用 OpenGL 时,我在追踪纹理内存泄漏时获得了很多乐趣,事实证明这是发生的,因为当我释放 no 时我不在正确的 GL 上下文中- 更长时间需要的纹理,因此无纹理调用并没有删除我认为的纹理。不知道这是否与您的问题有关,但我想我会提到它。
-
谢谢杰里米。一开始我在内存泄漏和 OpenGL 方面也遇到了一些问题(同样的,上下文有问题),但是程序的内存使用量一直保持不变,它适用于 XP。我想(也许我错了,如果是,请纠正我)如果程序有一些内存泄漏,它会增加两个操作系统的内存。
-
@Frank,它在我用于开发的计算机 (XP) 上运行良好,所以我不知道如何进行回溯。