LWJGL and glslDevil

I’m experiencing a problem with glslDevil when I try to debug my shaders. I’m making a game with LWJGL, but I can’t debug the shaders with glslDevil. The problem is that I can’t attach glslDevil to the program. Isn’t it just possible with LWJGL, or am I doing something wrong?

tryed all different OpenGL debuggers a while back and didn’t get any to run with Java

I’ve never had to use much more than checking if the GL_COMPILE_STATUS equals zero and then printing out glGetShaderInfoLog. Not sure why one would need a debugger, I don’t need one even with the largest of my shaders.

These debuggers have a huge amount of features which can be very helpful.

  • profile your opengl calls. report unnecessary or costly calls, tell you which render calls took the longest
  • let you investigate why your screen is black. look at the current geometry, matrices …
  • show active textures and state
  • explain why some pixel has this specific color

tools:
http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/
http://developer.amd.com/tools-and-sdks/graphics-development/gpu-perfstudio-2/

Thanks for the replies.

Do you think those tools will work?

I got glslDevil linked, but it crashes my game.

W! Program Start
|  wglCreateContext(0601201B)
|  wglGetCurrentDC()
|  wglGetCurrentContext()
|  wglMakeCurrent(0601201B, 00010000)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglGetCurrentDC()
|  wglGetExtensionsStringARB(0601201B)
|  wglMakeCurrent(00000000, 00000000)
|  wglMakeCurrent(0601201B, 00010000)
|  glGetString(GL_VERSION)
|  glGetIntegerv(UNKNOWN ENUM!, 063FE6E8)
E! Child process exited
W! Program termination forced!

Any ideas how to fix this? The game works when I just open it normally.