调试与性能
December 25, 2024About 1 min
调试与性能
工程实践中攒下来的调试和性能分析笔记,多数和具体引擎无关,C++ / Windows / 主机平台通用。
内存与崩溃
- 用 mprotect / VirtualProtect 抓内存越界——给可疑缓冲区加守护页,让越界当场触发异常而不是悄悄写花。
- 用 dump_syms + minidump-stackwalk 从 minidump 还原调用栈——不依赖 VS、可进 CI 的崩溃符号化流程。
- Visual Studio 调试技巧合集——数据断点定位内存被谁改、诊断工具抓泄漏、看 mutex 被哪个线程锁住、远程调试、临时关函数优化。
性能分析
- Optick:轻量级 C++ 游戏性能分析器——集成简单,CPU/GPU 同帧对照。
- GPUView:从 ETW trace 看 CPU/GPU 排队与掉帧——判断 CPU bound / GPU bound、定位掉帧。
图形 / Shader
- 分离 Shader 调试信息并在 RenderDoc 里用——剥离嵌入的调试信息缩小包体,同时靠 private data + pdb 让 RenderDoc 仍能源码级调试。
杂项
- 调试 C# exe 调用的 C++ native dll(混合模式调试)——让 native 断点在托管进程里命中。