다음을 통해 공유


IDebugSymbols2::FindSourceFile 메서드(dbgeng.h)

FindSourceFile 메서드는 원본 경로에서 지정된 소스 파일을 검색합니다.

구문

HRESULT FindSourceFile(
  [in]            ULONG  StartElement,
  [in]            PCSTR  File,
  [in]            ULONG  Flags,
  [out, optional] PULONG FoundElement,
  [out, optional] PSTR   Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG FoundSize
);

매개 변수

[in] StartElement

검색을 시작할 원본 경로 내의 요소 인덱스를 지정합니다. StartElement 이전의 원본 경로에 있는 모든 요소는 검색에서 제외됩니다. 첫 번째 요소의 인덱스는 0입니다. StartElement가 원본 경로의 요소 수보다 크거나 같으면 제출 시스템이 직접 검사됩니다.

이 매개 변수는 FoundElement와 함께 사용하여 원본 경로의 여러 일치 항목에 대해 검사 수 있습니다.

[in] File

검색할 파일의 경로 및 파일 이름을 지정합니다.

[in] Flags

검색 플래그를 지정합니다. 이러한 플래그에 대한 설명은 DEBUG_FIND_SOURCE_XXX 참조하세요.

플래그 DEBUG_FIND_SOURCE_TOKEN_LOOKUP 설정하면 안 됩니다. 이 메서드는 검색에 원본 서버를 포함하지 않으므로 플래그 DEBUG_FIND_SOURCE_NO_SRCSRV 무시됩니다.

[out, optional] FoundElement

파일이 포함된 원본 경로 내에서 요소의 인덱스를 받습니다. 파일이 파일 시스템에서 직접 발견된 경우(원본 경로를 사용하지 않음) -1FoundElement로 반환됩니다. FoundElementNULL이면 이 정보가 반환되지 않습니다.

[out, optional] Buffer

찾은 파일의 경로와 이름을 받습니다. 플래그 DEBUG_FIND_SOURCE_FULL_PATH 설정된 경우 파일의 전체 정식 경로 이름입니다. 그렇지 않으면 파일을 찾는 데 사용된 파일 의 꼬리와 원본 경로의 디렉터리가 연결됩니다. BufferNULL이면 이 정보가 반환되지 않습니다.

[in] BufferSize

버퍼 버퍼의 크기를 문자 단위로 지정합니다.

[out, optional] FoundSize

파일 이름의 크기를 문자 단위로 지정합니다. FoundSizeNULL이면 이 정보가 반환되지 않습니다.

반환 값

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요.

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.
E_NOINTERFACE
원본 경로에서 파일을 찾을 수 없습니다.

설명

엔진은 다음 단계를 순서대로 사용하여 파일을 검색합니다.

  1. 원본 경로의 각 디렉터리에 대해 디렉터리 경로의 끝과 파일 경로의 시작 부분 사이에 겹치는 부분을 찾으려고 시도합니다. 예를 들어 원본 경로에 C:\a\b\c\d 디렉터리가 포함되어 있고 File 이 c\d\e\samplefile.c이면 C:\a\b\c\d\e\samplefile.c 파일이 일치합니다.

    플래그 DEBUG_FIND_SOURCE_BEST_MATCH 설정되면 가장 긴 겹침이 있는 일치 항목이 반환됩니다. 그렇지 않으면 첫 번째 일치 항목이 반환됩니다.

  2. 원본 경로의 각 디렉터리에 대해 파일이 디렉터리에 추가됩니다. 일치하는 항목이 없으면 이 프로세스가 반복되고 파일 경로의 시작 부분에서 첫 번째 디렉터리가 제거될 때마다 반복됩니다. 예를 들어 원본 경로에 C:\a\b 디렉터리가 포함되어 있고 File 이 c\d\e\samplefile.c이면 C:\a\b\e\samplefile.c 파일이 일치합니다.

    찾은 첫 번째 일치 항목이 반환됩니다.

  3. 파일 은 제출 시스템에서 직접 조회됩니다.
참고 원본 경로의 모든 원본 서버는 무시됩니다. 검색에 원본 서버를 포함하려면 ModAddr에 지정된 모듈 주소와 함께 FindSourceFileAndToken을 사용합니다.
 
원본 경로 사용에 대한 자세한 내용은 원본 파일 사용을 참조하세요. 원본 경로 및 해당 구문에 대한 개요는 원본 경로를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)

추가 정보

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3