Archived

This topic is now archived and is closed to further replies.

Erzengeldeslichtes

BSOD, my game causing a device error?

Recommended Posts

I'm getting a BSOD listed under Windows Driver Development Kit as a Kernel Mode Exception(0x8E) of type Memory Access Violation(0xC0000005) (Isn't that a General Protection Fault? Or at least, one of those Access Violations the debugger catches and puts me in the code where the error is?). I don't see an actual driver listed, and I truly have no clue where this is occuring in my program because when I'm running it through the debugger I seem to be able to run it indefinitly--until I either a)Cancel execution or b)Let the program execute uninterrupted, in which case it goes blue. On top of that, this occurs after a major, major overhall of my graphics rendering code, and it's quite a lot of code to sift through. Even so, I've looked through it as thoroughly as I can, and everything looks fine (now, although I spotted a few places that looked like they could cause problems but the BSOD is still occuring.) Does anyone have any hints on tracking down causes of BSODs? I apparently have a hex code for the address of the exception, but I have no clue how to find where that address pointed to. Anyone more experianced than I am able to teach me? Erzengel des Lichtes Archangel of Light [edited by - Erzengeldeslichtes on April 4, 2004 4:16:11 AM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
you could try generating a map file when you compile - then by examination you can check if the address is a) in your program & b) what function it is in (if its a problem in the program). To be honest it sounds like your graphics driver''s trying to access an invalid address. You could try putting the program up & ask people to test it .... although give a suitable warning!!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Oh heck! other thing to mention - if you ever get an exception that drops you into the debugger & you don''t know where you are (in fact even if you do know where you are...) pull up the call stack and see where the current location has been called from.

Share this post


Link to post
Share on other sites
I''ve tried it on another computer, and while it doesn''t work (just freezes and forces me to end task it) it doesn''t cause the BSOD. Not the first time the radeon video card in my developer computer has screwed up on a game, and it''s really going to be horrible having to develop on a computer I can''t test on...

Share this post


Link to post
Share on other sites
the only way i''ve ever managed to create a BSOD was when i called IDirect3DDevice8::DrawPrimitive with more triangles than there are in the current vertex buffer, with D3D in release mode (debug catches it)

Share this post


Link to post
Share on other sites
Heh, this figures, it's another one of my Stupid Mistakes™. Turns out the cause was that I was doing IDirect3DDevice9::Present before IDirect3DDevice9::EndFrame. I fix that, and the GeforceFX (my semifunctional computer mentioned above) works completely, but the Radeon Mobility (the development platform) now gives me a completely new BSOD, in this case a 0x50 Page Fault in Nonpaged Area, in my ATI3DLAG.DLL. In this case, I'm going to chaulk it up to the mobility being it's usual evil self...

Edit: Killed an undesired smiley.

[edited by - Erzengeldeslichtes on April 5, 2004 8:49:51 AM]

Share this post


Link to post
Share on other sites