I recently discovered a serious problem with an openGL 3-d program I’m writing called Tronimation. For some reason, it’s as if something I have no idea about is just randomly corrupting the internal state of GLUT and then causing it to crash when unrelated actions are taken. Here is a gdb session. All I did was move my program camera back in Z a bit, and then tried to change the window size. The program siezed, and gave me the same warning: Something to do with glXwaitX, the variable “scope,” and do-lookup.h. Note that this crash does NOT happen if I don’t try to move the camera. I’ve been going through all my source making sure everything is casted to exactly what all the GL/GLU/GLUT functions expect, with no impact on the problem at all (???). What on earth is going on?
[erik-k@erik Tronimation]$ gdb ./tronimation
GNU gdb 6.0-2mdk (Mandrake Linux)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for details.
This GDB was configured as “i586-mandrake-linux-gnu”…Using host libthread_db library “/lib/tls/libthread_db.so.1”.
Starting program: /home/erik-k/programs/opengl/worldview/Tronimation/tronimation
4823: binding file /usr/X11R6/lib/libglut.so.3 to /usr/lib/tls/libGL.so.1: normal symbol `glXWaitX’
Program received signal SIGSEGV, Segmentation fault.
do_lookup (undef_name=0x4012cd5c “glXWaitX”, hash=31295096, ref=0x4012bc54, result=0xbffff384, scope=Variable “scope” is not available.
) at do-lookup.h:52
52 do-lookup.h: No such file or directory.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.