EXT_ANALYSIS_PLUGIN 콜백 함수(extsfns.h)
분석 확장을 작성할 때 (_EFN_Analyze)로 내보낸 EXT_ANALYSIS_PLUGIN 구현해야 합니다. !analyze 디버거 명령이 실행되면 분석에 참여할 수 있도록 각 단계에서 _EFN_Analyze 호출합니다.
WINAPI(__stdcall) 호출 규칙이 필요합니다. 예외(noexcept)는 함수를 벗어나지 않아야 합니다.
구문
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
매개 변수
[in] Client
IDebugClient4 인터페이스에 대한 포인터입니다. 이 인터페이스를 사용하여 디버거에 액세스합니다. QueryInterface를 사용하여 레거시(), 디버그 호스트(), 데이터 모델(IDebug*
IDebugHost*
) 등과 같은 다른 디버거 인터페이스에IDataModel*
액세스합니다.
[in] CallPhase
현재 진행 중인 분석 단계를 지정하는 FA_EXTENSION_PLUGIN_PHASE 열거형의 값입니다. 분석 단계에는 초기화, 스택 분석, 사전 버킷팅 및 버킷 후가 포함됩니다.
[in] pAnalysis
IDebugFailureAnalysis2 인터페이스에 대한 포인터입니다. 이 인터페이스를 사용하여 분석의 속성을 가져오기/설정합니다. QueryInterface를 사용하여 다른 !analyze 인터페이스에 액세스합니다.
반환 값
S_OK – 변경되었습니다.
S_FALSE – 변경되지 않았습니다.
E_* - 오류가 발생했습니다. !analyze는 "0x%08x" 형식으로 HRESULT의 Plugin.Exception."Phase"."DLL"
키 문자열 및 값 문자열을 사용하여 키/값을 통해 오류를 보고합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | extsfns.h |