Things To Do (in no particular order) * Determine blob sizes passed to glXxxPointer functions. Potentially using tricks such as: * http://fixunix.com/linux/337646-isbadreadptr-linux.html * http://www.gamedev.net/community/forums/topic.asp?topic_id=132787 * http://msdn.microsoft.com/en-us/library/aa366781(v=VS.85).aspx * http://msdn.microsoft.com/en-us/library/aa366902(v=VS.85).aspx * http://stackoverflow.com/questions/1281686/determine-size-of-dynamically-allocated-memory-in-c * Allow clamping to a GL version or a number of extensions. * Trace multiple threads * GetCurrentThreadId() * pthread_self() * Put zlib (de)compression in a separate thread. * Trace TSCs * Retrace multiple threads (which will imply abandoning GLUT) * Provide a readline-like interactive mode to gltrace * http://github.com/antirez/linenoise * https://github.com/antirez/linenoise/issues#issue/8 * http://hg.youterm.com/radare/file/87579f8c5087/src/dietline.c * Trace window sizes somehow * Write snapshots as PNGs instead of BMPs * Add new mode to compare with previous snapshots instead of writing. * Plug memory leaks.