Crash...and how to read native stack...?

Started by EgonOlsen, April 11, 2012, 18:27:51

Previous topic - Next topic

EgonOlsen

I've got reports about problems when running jPCT based apps on some NVidia cards. The program either runs fine or crashes at startup and it's impossible to tell when it does what. It crashes when using VBOs or normal vertex arrays, when using indexed or plain geometry...i can't find a pattern in that. The same code runs fine on ATI, Intel, SiS etc....so i thought, that looking at the crash log might help, but i don't understand what i'm seeing. This is an example when using LWJGL 2.8.3:

C  [nvoglv32.DLL+0x6fc2b1]  DrvPresentBuffers+0x66951
C  [nvoglv32.DLL+0x7bdbb2]  DrvPresentBuffers+0x128252
C  [nvoglv32.DLL+0x7be9ce]  DrvPresentBuffers+0x12906e
C  [nvoglv32.DLL+0x7bef70]  DrvPresentBuffers+0x129610
C  [nvoglv32.DLL+0x130c44]
C  [lwjgl.dll+0x97d8]  Java_org_lwjgl_opengl_GL33_nglVertexAttribP1uiv+0x18
J  org.lwjgl.opengl.GL11.glDrawElements(ILjava/nio/IntBuffer;)V
j  gui.Main.main([Ljava/lang/String;)V+9


Am i right that this is meant to be read more or less like a java stack trace, i.e. you start at the bottom working your way up in the call chain until it crashes? If so, how comes this:

C  [lwjgl.dll+0x97d8]  Java_org_lwjgl_opengl_GL33_nglVertexAttribP1uiv+0x18
J  org.lwjgl.opengl.GL11.glDrawElements(ILjava/nio/IntBuffer;)V


What does GL33_nglVertexAttribP1uiv has to do with glDrawElements? They aren't related in any way and i'm not calling anything from GL33 myself nor does the code inside glDrawElements. Another example from another version of LWJGL (don't know which, maybe 2.8.0) is this:

C  [nvoglv32.DLL+0x861a70]  DrvPresentBuffers+0x75290
C  [nvoglv32.DLL+0x9322f2]  DrvPresentBuffers+0x145b12
C  [nvoglv32.DLL+0x9343c5]  DrvPresentBuffers+0x147be5
C  [nvoglv32.DLL+0x9346af]  DrvPresentBuffers+0x147ecf
C  [nvoglv32.DLL+0x16cb41]
C  [lwjgl.dll+0x9ec8]  Java_org_lwjgl_opengl_EXTDirectStateAccess_nglGetMultiTexGenfvEXT+0x18
J  org.lwjgl.opengl.GL11.glDrawElements(ILjava/nio/IntBuffer;)V
V  [jvm.dll+0x122c7e]
V  [jvm.dll+0x1c9c0e]


...and again: What does nglGetMultiTexGenfvEXT has to do with glDrawElements? I simply don't get it!? What's the secret in reading this stack or are the results just bogus for some reason?

EgonOlsen

Nobody has an idea on how to read this... ???

CodeBunny

I'm not really a native code / stack trace kind of guy, sorry. Not quite sure how to help.

Also, shouldn't this thread be in the Bugs section or LWJGL Development? It's really not OpenGL specific.