Trace-If 식은 어떻게 사용하나요?

Trace-If 식을 사용하는 방법을 이해하기 위해 "begin_wpp 구성" 문의 사용 및 구문을 보여 주는 이러한 식의 예를 제공합니다. 이 예제에서는 함수 TRACE_RETURN 참조합니다. 이 함수는 HR(FAILED) 식이 true이면 이벤트를 기록합니다.

FAILED(HR)가 true이면 ULONG 상태인 원본 파일이 있고 TRACE_RETURN(상태)를 호출하여 이벤트가 기록된다고 가정합니다.

//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
추적 함수의 이름과 서명을 정의합니다. 이 예제에서 함수는 하나의 매개 변수를 사용하고 형식 문자열은 사용하지 않습니다.

Trace-If 식의 또 다른 예는 C/C++ 매크로에 추적 문을 포함하는 어떻게 할까요? 섹션을 참조하세요.