调试宏¶
调试宏主要分布在两个配置头里:
src/config/egui_config_debug_default.hsrc/config/egui_config_default.h
推荐优先在 app_egui_config.h 或 USER_CFLAGS 里覆盖,不要直接改默认头文件。
画面可视化类¶
宏 |
默认值 |
作用 |
典型用法 |
注意事项 |
|---|---|---|---|---|
|
|
在每个 PFB tile 外画红色边框 |
看 tile 扫描路径、PFB 大小是否合适 |
建议配合 |
|
|
在每个 dirty region 外画蓝色边框 |
看脏区是否过大、是否漏刷 |
常和 |
|
|
控制调试可视化时是否先清掉上一次的脏区结果 |
|
只在 |
|
|
调试可视化时,每个 tile flush 之间额外延时 |
设成 |
会显著拉低刷新速度 |
|
|
显示 |
快速看刷新节奏和绘制耗时 |
统计口径是窗口平均,不是单帧瞬时值 |
|
|
显示 EGUI 自身 |
快速看框架自身 SRAM 占用变化 |
只统计 |
|
|
设置屏幕 monitor 共用字体 |
觉得默认字太大或太小时覆盖字体资源 |
需传入字体对象地址,详细行为见 Debug Monitor 行为说明 |
|
|
自动记录并绘制最新一条触摸轨迹 |
排查点击、拖动、坐标映射问题 |
现在位于 |
|
|
触摸轨迹最多保留的点数 |
长拖动或高采样设备可调大 |
点数越多,占用的静态内存越多 |
日志与追踪类¶
宏 |
默认值 |
作用 |
典型用法 |
注意事项 |
|---|---|---|---|---|
|
|
给每个 view 分配唯一 |
配合 |
会给 |
|
|
给 view / activity / dialog 保留名字 |
打开 |
会给 |
|
|
控制日志等级 |
|
|
|
|
控制日志格式 |
|
|
|
|
输出每帧脏区面积和 PFB tile 统计 |
做性能分析、生成报告 |
日志以 |
|
|
输出每帧 dirty region 矩形明细 |
看一帧内有哪些脏区 |
日志量中等 |
|
|
输出脏区来源和合并过程 |
深挖“是谁让它变大了” |
日志量很大,建议短时开启 |
推荐组合¶
1. 看 tile 扫描¶
make all APP=HelloBasic APP_SUB=slider PORT=pc \
USER_CFLAGS="-DEGUI_CONFIG_DEBUG_PFB_REFRESH=1 -DEGUI_CONFIG_DEBUG_REFRESH_DELAY=40"
2. 看脏区是否合理¶
make all APP=HelloBasic APP_SUB=slider PORT=pc \
USER_CFLAGS="-DEGUI_CONFIG_DEBUG_DIRTY_REGION_REFRESH=1 -DEGUI_CONFIG_DEBUG_REFRESH_DELAY=40"
3. 看触摸路径¶
make all APP=HelloBasic APP_SUB=slider PORT=pc \
USER_CFLAGS="-DEGUI_CONFIG_DEBUG_TOUCH_TRACE=1"
4. 查脏区收益¶
make all APP=HelloShowcase PORT=pc \
USER_CFLAGS="-DEGUI_CONFIG_DEBUG_DIRTY_REGION_STATS=1"
5. 追日志到具体控件¶
make all APP=HelloShowcase PORT=pc \
USER_CFLAGS="-DEGUI_CONFIG_DEBUG_CLASS_NAME=1 -DEGUI_CONFIG_DEBUG_VIEW_ID=1 -DEGUI_CONFIG_DEBUG_LOG_LEVEL=EGUI_LOG_IMPL_LEVEL_DBG -DEGUI_CONFIG_DEBUG_LOG_SIMPLE=0"
运行效果¶
PFB 刷新可视化¶
下面这张图里红色网格就是 PFB tile 边界。为了把 tile 划分看得更清楚,截图时把 PFB_WIDTH/PFB_HEIGHT 临时调成了 20x20。
EGUI_CONFIG_DEBUG_PFB_REFRESH=1 的效果。红色边框表示当前 PFB tile。¶
脏区可视化¶
EGUI_CONFIG_DEBUG_DIRTY_REGION_REFRESH=1 的效果。蓝色边框表示 dirty region。¶
同时看 tile 和脏区¶
EGUI_CONFIG_DEBUG_PFB_REFRESH=1 和 EGUI_CONFIG_DEBUG_DIRTY_REGION_REFRESH=1 同时开启。红色看 tile,蓝色看 dirty region。¶
实时运行信息¶
EGUI_CONFIG_DEBUG_INFO_SHOW 已移除,当前请直接使用 EGUI_CONFIG_DEBUG_PERF_MONITOR_SHOW=1 和 EGUI_CONFIG_DEBUG_MEM_MONITOR_SHOW=1。详细计算规则、显示格式、位置参数和运行截图见 Debug Monitor 行为说明。
旧 EGUI_CONFIG_DEBUG_INFO_SHOW 所覆盖的调试监视器效果。¶
触摸轨迹¶
轨迹线默认关闭。编译时打开 EGUI_CONFIG_DEBUG_TOUCH_TRACE=1 后,只保留最近一次从按下到松开的轨迹,自动用红色 1 像素线绘制。
EGUI_CONFIG_DEBUG_TOUCH_TRACE=1 的效果。红色细线是最新一条触摸轨迹。¶
关闭 EGUI_CONFIG_DEBUG_TOUCH_TRACE 后,同一场景不会显示轨迹线。¶