是否可以在跟踪代码中使用枚举?
可以使用枚举在跟踪消息中显示有意义的术语,而不是显示用户必须解码的整数值。
例如,在代码中定义以下枚举:
#define SPECIALDAY 0xF0000000
enum _wday {
sunday = 0,
monday = 55,
tuesday = 3,
wednesday = 1 | SPECIALDAY ,
thursday = 7 | SPECIALDAY,
friday = 5,
saturday = 6
};
若要在跟踪消息中使用 枚举,请将以下配置数据添加到源文件。 此代码指示 WPP 提取枚举的符号信息,并使用在显示枚举记录值时定义的名称。
// begin_wpp config
// CUSTOM_TYPE(dayset, ItemEnum(_wday) );
// end_wpp
然后,可以在跟踪消息的格式字符串中使用 dayset 自定义类型。 例如:
_wday p = wednesday;
DoTraceMessage(NOISE " %!dayset!", p);
最后,由于将配置数据添加到非配置文件 (非 .ini 文件) ,因此请将 -scan 参数添加到调用 WPP 预处理器的RUN_WPP宏。 这会通知 WPP 在指定文件中查找配置数据。 例如:
RUN_WPP -scan:trace.c