Prior to recent versions of OpenGL, the traditional way to get debug information was to call
glGetError. Unfortunately, that is an exceedingly tedious method for debugging a program. The
glGetError function returns an error code if an error has occurred at some point previous to the time the function was called. This means that if we're chasing down a bug, we essentially need to call
glGetError after every function call to an OpenGL function, or do a binary search-like process where we call it before and after a block of code, and then move the two calls closer to each other until we determine the source of the error. What a pain!
Thankfully, as of OpenGL 4.3, we now have support for a more modern method for debugging. Now ...