B03: Using OpenGL State and History for Graphics Debugging

Van Dyk,B., Lutteroth,C., Weber,G., Wuensche,B.

Abstract:
To fulfill the unique debugging requirements of graphics programming, specialized tools are needed to aid in the debugging process. Modern graphics debuggers allow developers to inspect the current graphics state of a running application, and influence their control flow. However, they do not make maximum use of information about previous graphics states, despite the possible utily of this information in debugging. We propose GLDebug, an OpenGL debugger with novel features for using historical information to assist with graphics debugging. GLDebug provides the ability to capture and recall OpenGL state and function call information. Developers can retrace the graphics state history of OpenGL applications and compare different recorded states, which may come from different applications. State differences are made clearly visible, so that the source of state-based errors can be tracked down more easily. GLDebug was evaluated in a user study, with promising results: the participants found the tool helped them when working on four different OpenGL debugging tasks. All participants commented favorably on the support for tracking and analyzing state history. The results indicate that historical information is useful for graphics debugging, and that debuggers supporting such information can improve debugging efficacy. % proposed solution and brief description of approach We propose GLDebug, an OpenGL debugger with novel features for using historical information to assist with graphics debugging. GLDebug provides the ability to capture and recall OpenGL state and function call information. Developers can retrace the graphics state history of OpenGL applications and compare different recorded states, which may come from different applications. State differences are made clearly visible, so that the source of state-based errors can be tracked down more easily. % evaluation and results GLDebug was evaluated in a user study, with promising results: the participants found the tool helped them when working on four different OpenGL debugging tasks.
All participants commented favorably on the support for tracking and analyzing state history. The results indicate that historical information is useful for graphics debugging, and that debuggers supporting it can improve debugging efficacy.