다음을 통해 공유


분석 확장 플러그 인에 대한 메타데이터 파일

분석 확장 플러그 인을 작성할 때 플러그 인을 호출하려는 상황을 설명하는 메타데이터 파일도 작성합니다. !analyze 디버거 명령이 실행되면 메타데이터 파일을 사용하여 로드할 플러그 인을 결정합니다.

분석 확장 플러그 인 및 확장명 .alz와 이름이 같은 메타데이터 파일을 만듭니다. 예를 들어 분석 확장 플러그 인의 이름이 MyAnalyzer.dll 경우 메타데이터 파일의 이름을 MyAnalyzer.alz로 지정해야 합니다. 메타데이터 파일을 분석 확장 플러그 인과 동일한 디렉터리에 배치합니다.

분석 확장 플러그 인에 대한 메타데이터 파일은 키-값 쌍을 포함하는 ASCII 텍스트 파일입니다. 키와 값은 공백으로 구분됩니다. 키에는 공백이 아닌 문자가 있을 수 있습니다. 키는 대/소문자를 구분하지 않습니다.

키와 다음 공백 후에 해당 값이 시작됩니다. 값은 다음 양식 중 하나를 가질 수 있습니다.

  • 줄의 끝에 있는 모든 문자 집합입니다. 이 양식은 줄다리기 문자를 포함하지 않는 값에 대해 작동합니다.

    중요 메타데이터 파일의 마지막 값에 이 양식의 값이 있는 경우 줄은 줄 바꿈 문자로 끝나야 합니다.

  • 중괄호 { }사이의 문자 집합입니다. 폼은 줄 바꿈 문자를 포함하는 값에 대해 작동합니다.

#으로 시작하는 줄은 주석이며 무시됩니다. 주석은 키가 필요한 경우에만 시작할 수 있습니다.

메타데이터 파일에서 다음 키를 사용할 수 있습니다.

Description
PluginId 문자열 - 플러그 인을 식별합니다.
DebuggeeClass 문자열 - 가능한 값은 "커널" 및 "사용자"입니다. 플러그 인이 커널 모드 오류 또는 사용자 모드 오류만 분석하는 데 관심이 있음을 나타냅니다.
BugCheckCode 32비트 버그 검사 코드 - 플러그 인이 이 버그 검사 코드 분석에 관심이 있음을 나타냅니다. 단일 메타데이터 파일은 여러 버그 검사 코드를 지정할 수 있습니다.
ExceptionCode 32비트 예외 코드 - 플러그 인이 이 예외 코드를 분석하는 데 관심이 있음을 나타냅니다. 단일 메타데이터 파일은 여러 예외 코드를 지정할 수 있습니다.
ExecutableName 문자열 - 플러그 인이 분석할 프로세스의 실행 중인 실행 파일인 세션에만 관심이 있음을 나타냅니다. 단일 메타데이터 파일은 여러 실행 파일 이름을 지정할 수 있습니다.
ImageName 문자열 - 플러그 인은 기본 분석에서 이 이미지(dll, sys 또는 exe)가 오류로 간주되는 세션에만 관심이 있음을 나타냅니다. 분석에서 오류가 있는 이미지를 결정한 후 플러그 인이 호출됩니다. 단일 메타데이터 파일은 여러 이미지 이름을 지정할 수 있습니다.
MaxTagCount 정수 - 플러그 인에 필요한 최대 사용자 지정 태그 수입니다. 사용자 지정 태그는 extsfns.h에 정의된 태그가 아닌 다른 태그입니다.

메타데이터 파일 예제

다음 메타데이터 파일은 버그 검사 코드 0xE2 분석하는 데 관심이 있는 플러그 인에 대해 설명합니다. (마지막 줄은 줄 바꿈 문자로 끝나야 합니다.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

다음 메타데이터 파일은 MyDriver.sys 잘못된 모듈로 간주되는 경우 버그 검사 0x8, 0x9 및 0xA 분석하는 데 관심이 있는 플러그 인에 대해 설명합니다.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

다음 메타데이터 파일은 MyApp.exe 분석 중인 프로세스의 실행 중인 실행 파일인 경우 예외 코드 0xC0000005 분석하는 데 관심이 있는 플러그 인에 대해 설명합니다. 또한 플러그 인은 3개의 사용자 지정 태그를 만들 수 있습니다.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Windows용 디버깅 도구에는 dbgexts.dll라는 디버거 확장 모듈을 빌드하는 데 사용할 수 있는 샘플이 있습니다. 이 확장 모듈은 여러 디버거 확장 명령을 구현하지만 분석 확장 플러그 인으로도 사용할 수 있습니다. 즉, _EFN_Analyze 함수를 내보냅니다. 다음은 dbgexts.dll 분석 확장 플러그 인으로 설명하는 메타데이터 파일입니다.

PluginId         PluginSample
DebuggeeClass   User
ExceptionCode   0xc0000005
ExecutableName      cdb.exe
ExecutableName      windbg.exe
#
# Custom tag descriptions 
#
TagDesc         0xA0000000  SAMPLE_PLUGIN_DEBUG_TEXT    {Sample debug help text from plug-in analysis}
#

추가 정보

확장 !analyze에 대한 분석 확장 플러그 인 작성

_EFN_Analyze

!분석