Detecting the availability of OpenGL

One of my customer tried my program and it crashed without opening any window. I was not able to get any messages from the run.
He tried non-OpenGL version and worked.

The OpenGL version has been working fine most of the cases, at least
for more than dozens of customers.

My question is what’s the best way to get the information for the mulfunction of my application and detect it earlier and issue some message before it crashes.

The customer’s graphics card is Ati Radeon VE which supposed to suppoort OpenGL. Iam using WGL functions.

-KB

My question is what’s the best way to get the information for the mulfunction of my application and detect it earlier and issue some message before it crashes.
Debug it and fix the bug.

You have to determine what it was that caused the problem. Is it in your code (say, not checking for the existence of an extension before using the function pointer) or is it something about his system (not having recent drivers)?

I can not debug to fix it. I do not have the graphics card. My program runs for other graphics cards (over 20 cards).

My question is how to detect the problem and get the information about the problem without having all the existing graphics cards.

My program is not robust enough to endure the variance of the cards. But in this case, it’s very tricky.

-KB

Perhaps his OpenGL is not setup with a driver.

Get him to run a OpenGL info program like:
http://www.delphi3d.net/hardware/glinfo2.zip

and send you the results.

Under Windows there is just-in-time debugging. If you have MSVC installed that debugger is used, if not there is this Dr.Watson thingy. If that’s also not available, Microsoft normally wants to send crash infos to their servers.
Let the user give you the dumped informations his system produced by any of the three means above and if it’s in your modules look up the crash address in your matching map-files to isolate the function. If you haven’t got a repro, then you can only check the source code for bugs in that area.

Print a lot of debug statements (“I’m about to execute this now”) to some log file and have them send the log file back.

Or in the case of crash, install an exception handler, write a minidump to the file, have them send the dump file back. Open in in Visual Studio (with matching pdb files) and there you have it.

Or find the damn card. One more card to the 20 cards list :slight_smile: