3.0 KiB
3.0 KiB
Debug
命名空间: XCEngine::Debug
类型: module
描述: 提供日志分发、轻量级 CPU 埋点以及 RenderDoc 捕获集成。
概述
XCEngine::Debug 是引擎运行时调试能力的入口模块。它把三个需求放在同一层中统一管理:
- 运行日志:通过
Logger将消息分发到控制台、文件或自定义 sink。 - CPU 埋点:通过
Profiler记录函数段或作用域的耗时。 - GPU 抓帧:通过
RenderDocCapture在图形测试和工具程序中触发 RenderDoc。
当前版本的成熟度并不一致:
Logger与日志 sink 已经可以直接用于编辑器、测试和后端调试。Profiler的接口已经成形,但导出、标记和事件功能目前仍是占位实现。RenderDocCapture是 Windows 平台上的轻量封装,依赖可用的renderdoc.dll。
设计要点
- 统一入口比散落的
printf或后端专用日志更利于跨模块排查问题。 - sink 模式允许同时输出到多个目标,而不会把输出策略写死在业务代码里。
Profiler和RenderDocCapture都采用单例,目的是让工具、测试和引擎运行时共享一套调试入口。- 该模块偏开发期工具能力,不追求零侵入;一些 API 会主动写日志、刷新文件或拉起窗口焦点。
聚合头文件
头文件: XCEngine/Debug/Debug.h
Debug.h 是这个模块的 umbrella header。它本身不代表新的运行时类型,而是把 Logger、Profiler、RenderDocCapture 等常用 public header 聚合成一个便利入口。
对读者来说,最合理的入口仍然是当前这页,而不是再进入一个同名的 Debug/Debug.md 类型页。
头文件
- ConsoleLogSink -
ConsoleLogSink.h,面向stdout的日志输出 sink。 Debug.h- 模块聚合头,说明已并入当前页。- FileLogSink -
FileLogSink.h,将日志追加写入文件。 - ILogSink -
ILogSink.h,日志输出目标接口。 - LogCategory -
LogCategory.h,日志功能分类枚举。 - LogEntry -
LogEntry.h,日志记录载体。 - Logger -
Logger.h,全局日志分发中心。 - LogLevel -
LogLevel.h,日志严重级别枚举。 - Profiler -
Profiler.h,轻量级 CPU 埋点入口。 - RenderDocCapture -
RenderDocCapture.h,RenderDoc 封装。
相关指南
- Logging Architecture - 日志系统的角色划分、推荐接线方式和与 Unity 的概念对照。
- Profiler Workflow - 当前埋点能力的适用边界、典型流程与限制。
- RenderDoc Capture Workflow - 在图形测试中接入 RenderDoc 的推荐步骤。