gDEBugger 是一个开源的图形化调试工具,它可以帮助开发者调试 OpenGL、OpenCL 和 Vulkan 应用程序,以及其他的图形应用程序。最初由 AMD 公司创建,现在被称为 CodeXL。
gDEBugger 提供了许多功能强大的调试工具,包括:
- 帧缓冲查看器:显示 OpenGL 或 Vulkan 应用程序的帧缓冲,并允许您检查每个像素的值。
- 着色器调试器:允许您单独调试顶点和片段着色器,并查看和修改着色器变量的值。
- OpenCL 和 Vulkan 调试器:帮助您调试 OpenCL 和 Vulkan 的内核函数,并查看和修改变量的值。
- 性能分析工具:可帮助您识别性能瓶颈,并指导您优化代码。
如何运行游戏的exe?
GDebugger有project的概念,需要为目标exe新建一个工程:
根据游戏情况,选择合适的项目类型,cocos2dx选择OpenGL即可
选择游戏的exe文件
选择判断每帧结束的函数
最终将这个工程保存起来,方便后续直接使用:
如何调试游戏
点击Go
,让游戏运行起来:
当游戏启动后,点击Break
捕获当前帧,同时游戏也会阻塞在当前帧
如果想要观察某一个时间段,可能需要Record
下,有点类似浏览器devtools的profile
如何判断游戏是不是OpenGL
使用unity发布的exe,发现gdebugger无法break
在debugged process event里面发现日志:
Debug String: Detected error: The debugged process asked for an extension function pointer (glBufferData) from one render context, but called this function pointer in another render context (context #4)