Skip to main content
gamedev.net
🔒 Locked

Different behavior inside and outside debugger

Started by Blaster 8 replies 350+ views
Original Post
Blaster
Blaster
When I run my 3d tech demo in release build in the debugger, everything works fine. But if I run it outside the debugger, some things don''t get rendered. But, in debug build, it works fine both inside and outside the debugger. Any idea why it would do that? ---------------- Blaster Computer game programmer and part time human being Strategy First - http://www.strategyfirst.com BlasterSoft - http://www.blastersoft.com
Oluseyi
Oluseyi
Any idea why it would do that?
Sure. Bugs.

Realize that in debug mode (and within the debugger) certain additional precautions are taken for you, like initializing pointers to marker values and controlling array bounds. The most likely cause of this aberrant behavior is reliance on such precautions - precautions not taken in release mode.
gimp
gimp
I''ve found this kind of stuff was always something stupid like using a member variable that was not initialised. Always run the compiler at maximum warning levels. It''ll show you where much of this stuff is...

Chris Brodie
http:\\fourth.flipcode.com
Chris Brodie
Blaster
Blaster
Read again my post.
It works fine in Release, but only when run with F5 in VC. If I run it (still in release) with CTRL+F5, some things don't get displayed.

And to be sure the code gets executed, I added some release assert (VERIFY) to stop the code. And it stopped! Meaning that the code is executed!

What's different (for the program) when it's ran with CTRL+F5 compared to F5?

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

[edited by - Blaster on August 8, 2002 10:03:11 AM]
Blaster
Blaster
By the way gimp, I like your site.
I''m downloading your demo. The GUI stuff seems very nice. Mine is not as advanced (yet, because of lack of time, not idea) as yours.



----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com
i1977
i1977
Have you tried turning off all compiler optimizations in your release build to see if that still happens? Of course, that''s not the best solution, but it might give you an idea as to where to start looking for the problem.
Frederic FerlandStrategy First, Inc.http://www.strategyfirst.com
Blaster
Blaster
I don''t see why I should do that. Because the release exe works fine! The correct code gets executed, and I have the visual results I want.

But it''s different outside the debugger.
I am repeating myself again, but it''s a very strange bug. Maybe the windows messages sent to my main window are not the same, or the adsence of the debugger makes D3D behave differently.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com
MadKeithV
MadKeithV
Blaster: are you using resources outside of the program? Bitmaps and such? Because the active directory changes for the release build, if it''s not run in the debugger. This has been a source of annoyance for me for years
It could be that your program is simply not finding some of its resources.
It's only funny 'till someone gets hurt.And then it's just hilarious.Unless it's you.
Blaster
Blaster
No texture is missing.

The problem is only with my 2d rendering. I tried both orthogonal view and pretransformed vertices; same thing.
I will have to check my code at home.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

[edited by - Blaster on August 8, 2002 10:50:29 AM]
SilentReaper
SilentReaper
I agree with what was originally said about non initialized pointers and clobbering memory. The difference between running through the debugger and not running through the debugger is that the debugger will set up the environment differently. Somwhere you have a pointer that's barfing. Someone already mentioned turning the warning level all the way up. That should give you some clue where the problem is.

Do you know where in your code stuff starts to hit the fan? Is it purely DirectX calls? You should probably do some logging out to a file to get a clearer pic of what's going on. Perhaps once you've found where the problem is coming in at you could post the code here.

Good Luck.

[edited by - SilentReaper on August 8, 2002 11:30:21 AM]

Topic Locked

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

Sign in to reply to this topic.