次の方法で共有


トレース コードで列挙を使用できますか?

ユーザーがデコードする必要がある整数値を表示する代わりに、列挙型を使用してトレース メッセージに意味のある用語を表示できます。

たとえば、コードで次の列挙体を定義します。

#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 ファイル以外のファイル) に追加したため、WPP プリプロセッサを呼び出す RUN_WPP マクロに -scan パラメーターを追加します。 これにより、指定されたファイル内の構成データを検索するように WPP に通知されます。 例えば次が挙げられます。

RUN_WPP -scan:trace.c