Some OpenGL drivers (particularly proprietry drivers) are compiled without frame pointer information. The result is that if you pass a bad pointer to the driver, causing it to segfault,
is unable to produce a stack trace showing that location of the fault. This filter-set uses some ugly hacks to try to correct this.
When using this filter-set and debugging your application in
gdb(1), the segmentation fault will still leave you without a stack trace. However, if you continue running, you will get a second segmentation fault, at which point a stack trace is available.
Note that the call that causes the segmentation fault may not be the direct cause; for example, a bad pointer passed to
might only cause a segmentation fault in
glDrawArrays. See also the
filter-set, which does some aggressive error-checking and can detect some of these conditions.