/* * 模块名称:主机侧单测桩 - dbg_log.h(lftpd 协议层模块专用) * 模块功能:DBG_* 换成计数,让"对端在 220 握手前就走了""传输未完成"这些只体现在 * 日志里的分支可断言。 * * ⚠ 仅供主机侧单测使用,不参与 MCU 构建。 * 为什么桩这层而不是 private/lftpd_log.h:真实那份是**宏**(lftpd_log_info 等直接 * 展开成 DBG_*),而且 MSVC 的引号 include 会先从 lftpd.c 自己的目录找 * private/lftpd_log.h——桩目录赢不过它。所以正确做法是让真实 lftpd_log.h 照常参与 * 编译(它的分级语义也就一起被验证了),只把最底下的 DBG_* 换成计数。 * 顺带说明分级(真实头注释里写得很清楚):lftpd_log_peer 是 **info** 级不是 error, * 因为"客户端关了个窗口"不该把 /serial-boot-test 的 Forbidden 标记 [ERR] 触发成 FAIL,也不该 * 让任何人连 21 端口就走就能无限制造固件级 ERROR;而 DOWNLOAD/UPLOAD FAILED 仍记 * error(那是数据完整性事件)。 * * 创建日期:2026-10-23 */ #ifndef DBG_LOG_H #define DBG_LOG_H extern int g_lg_info_count; extern int g_lg_error_count; extern int g_lg_debug_count; #define DBG_INFO(fmt, ...) do { (void)(fmt); g_lg_info_count++; } while (0) #define DBG_DEBUG(fmt, ...) do { (void)(fmt); g_lg_debug_count++; } while (0) #define DBG_ERROR(fmt, ...) do { (void)(fmt); g_lg_error_count++; } while (0) #endif /* DBG_LOG_H */