Skip to main content
gamedev.net
🔒 Locked

Strange Error on program close

Started by GambitSnax 6 replies 700+ views
Original Post
GambitSnax
GambitSnax
Hi, When I close my DirectX 9 program down, the computer lags for a few seconds as it prints out a few hundred of these - Direct3D9: (ERROR) : [2] : Address 00C8D440 Different address each time and the numbers ranging from 0 to 15. Could anyone tell me what this error means? I'm thinking that it could be a memory leak somewhere but have had no luck finding it. Another bizzare fact is that it only happens on my machine that has the Febuary 2006 SDK installed, not my machine with the September 2005 SDK on it. Any ideas would be appreciated. Cheers.
DXnut
DXnut
Are you using the debug version of DX? To do this use d3dx9d.lib in the Linker/Input section (versus d3dx9.lib) AND from the control panel switch to the debug version of DX. This will cause DX to put out a lot more debug info as it runs and shuts down.

--------------------------Most of what I know came from Frank D. Luna's DirectX books
jollyjeffers
jollyjeffers
Yup, you got yourself a memory leak - have fun [grin]

If it's only just started happening then try and back-track through any recent changes. Either some completely new code, or a modification to existing code has probably broken something.

A full call-stream capture using PIX can be useful for finding "alive" objects when your application closes down. I've found that to be a bit quicker than the BreakOnAllocID stuff...

hth
Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
circlesoft
circlesoft
Quote:
Original post by jollyjeffers
Yup, you got yourself a memory leak - have fun [grin]

I am not so sure this is always the case. I have gotten these randomly in a big project, and it isn't due to memory leaks. How can I tell? The D3D debug runtimes will always spew when you have leaked an object, and exactly what it's allocID is. Also, you will get info from the CRT. In addition, I get info from our custom allocator.

It seems like this happens when I am debugging and I switch between VS and my application. Sometimes, the device just spews out thousands of lines of that garbage, while the application continues to function correctly. It's kinda weird, and only started happening in recent SDKs.
jollyjeffers
jollyjeffers
Well thats a new one to me [oh]

I've been doing most of my recent development using Dec'05, I only used Feb'06 on Vista...

Never seen that sort of debug output for anything other than memory leaks. Would be interesting to find out what you (and possibly the OP) are describing...

Cheers,
Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
circlesoft
circlesoft
Quote:
Original post by jollyjeffers
Well thats a new one to me [oh]
Never seen that sort of debug output for anything other than memory leaks. Would be interesting to find out what you (and possibly the OP) are describing...

I always just thought it was that the driver (or D3D) had made a boo-boo and decided to dump the results back to me. Who knows, that is probably not it.
GambitSnax
GambitSnax
Yeah, spent a fair bit of time last week looking for a memory leak, with no success. It really is strange though that it only does it on the one computer, and on the other it runs just fine. But computers have VS2003 installed with the Feb version of DirectX 2006.
blaze02
blaze02
Quote:
Original post by GambitSnax
Direct3D9: (ERROR) : [2] : Address 00C8D440


Memory leak. Just look through all the stuff you are creating for d3d and see what you are not ->Release()'ing when your program closes. I would bet money that it is a texture, but here are the other options:
vertex/index buffer
effects (if you are using shaders)
texture surfaces (if you are rendering to a texture)
d3d device
...

Just look through the stuff you are creating during your program. A few hundred errors is likely just one texture.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.