What we're actually interested in is comparing the call stack before the exception occurs with the call stack after the exception occurs. That will tell you if execution jumped to somewhere it shouldn't have.
That would really be a hard issue. Sadly I cannot reproduce the exception anymore. But my thought would be that if the stack got messed up the program flow would not be normal afterwards. The cleanup-routine has some local variables which would have been messed up then resulting in an access Violation. The this pointer of the objects always looked normal at the time of exception. No bad vftable, no member-variables containing rubbish, normal program execution after the exception. If I remember right the exception was thrown in another thread of nvogl. Not in the main thread of the program.
I cannot help myself but assume the impossible: My program generates that same exception in a totally unrelated-to-OpenGL context when messing around with the console and stderr (that's an issue for itself) in a more-or-less controlled manner. The nvogl surely would not contain any references to those standard streams, wouldn't it?
Last edited by hlewin; 08-05-2014 at 05:28 AM.