glGenBuffers segfault

When I try to call glGenBuffers, I get a segfault, and I have no idea why. I’m using the binary nVidia drivers for ubuntu 9.10, here’s what I consider to be relevant parts of my glxinfo, glewinfo:

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 8800 GT/PCI/SSE2
OpenGL version string: 3.0.0 NVIDIA 185.18.36
OpenGL shading language version string: 1.30 NVIDIA via Cg compiler

GLEW version 1.5.1
Reporting capabilities of display :0.0, visual 0x2b
Running on a GeForce 8800 GT/PCI/SSE2 from NVIDIA Corporation
OpenGL version 3.0.0 NVIDIA 185.18.36 is supported
GL_VERSION_1_5:                                                OK 
  glBeginQuery:                                                OK
  glBindBuffer:                                                OK
  glBufferData:                                                OK
  glBufferSubData:                                             OK
  glDeleteBuffers:                                             OK
  glDeleteQueries:                                             OK
  glEndQuery:                                                  OK
  glGenBuffers:                                                OK
  glGenQueries:                                                OK
  glGetBufferParameteriv:                                      OK
  glGetBufferPointerv:                                         OK
  glGetBufferSubData:                                          OK
  glGetQueryObjectiv:                                          OK
  glGetQueryObjectuiv:                                         OK
  glGetQueryiv:                                                OK
  glIsBuffer:                                                  OK
  glIsQuery:                                                   OK
  glMapBuffer:                                                 OK
  glUnmapBuffer:                                               OK

My code is here:

it segfaults, and gdb indicates that its on my call to glGenBuffers. Any help is GREATLY appreciated.


The reason for your seg fault now is that you haven’t allowed glew to set all the openGL entry points (like glGenBuffers). Try adding a glewInit() just after you create your window … see glew info for more details.

You can actually print out the function value. Usually it’s set to 0 instead of a “normal” function pointer, so you’ll know glewInit() hasn’t been called yet. If it is zero, it’s definitely an init problem. Functions will often be set as to zero until they’re initialized so you should see a 0 in the gdb error as well.

You’re a lifesaver. Thank you!!!