Trace-If 式の使用方法

Trace-If 式の使用方法を理解するために、"begin_wpp config" ステートメントの使用法と構文を示すこのような式の例を示します。 この例では、式 FAILED(HR) が true の場合にイベントをログに記録する関数TRACE_RETURNを参照します。

FAILED(HR) が true の場合は、状態 ULONG を持つソース ファイルがあり、TRACE_RETURN(Status) を呼び出すことによってイベントがログに記録されると仮定します。

//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp

#define WPP_LEVEL_EXP_PRE(LEVEL, HR) {if (FAILED(HR)) {
#define WPP_LEVEL_EXP_POST(LEVEL, HR) ;}}
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_LEVEL_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_LEVEL_LOGGER(ERROR)

前の例では、begin_wpp構成とend_wpp行の間にTRACE_RETURNが定義されていることに注意してください。 その後、この定義の後に PRE/POST マクロと ENABLED および LOGGER 定義が続きます。

begin_wpp構成とend_wpp区切り記号は、プリプロセッサによって解析される構成ブロックを定義します。 構成ブロック定義を含むファイルは、WPP によってスキャンされる必要があります。 このファイルは、-scan:file.extension パラメーターで指定されます。

- scan およびその他のRUN_WPP オプションについては、「WPP プリプロセッサ」を参照してください。

次の一覧では、構成ブロックの例の各ステートメントの詳細を示します。

USEPREFIX
イベントのログ記録時に使用するプレフィックス書式指定文字列を定義します。 この例では、STDPREFIXが使用されています。 STDPREFIX で使用できる値については、 トレース行ごとにプレフィックス出力操作方法変更する方法を参照してください。

USESUFFIX
イベントが記録されるときに使用されるサフィックス形式文字列を定義します。

FUNC
トレース関数の名前とシグネチャを定義します。 この例では、関数は 1 つのパラメーターを受け取り、書式指定文字列は受け取っていません。

Trace-If 式の別の例については、「C/C++ マクロに trace ステートメントを含める操作方法」セクションを参照してください。