다음을 통해 공유


SplitSymbols 함수(imagehlp.h)

지정된 이미지에서 기호를 제거합니다.

구문

BOOL IMAGEAPI SplitSymbols(
  [in]  PSTR  ImageName,
  [in]  PCSTR SymbolsPath,
  [out] PSTR  SymbolFilePath,
  [in]  ULONG Flags
);

매개 변수

[in] ImageName

기호를 분할할 이미지의 이름입니다.

[in] SymbolsPath

기호를 저장하기 위한 하위 디렉터리입니다. 이 매개 변수는 선택 사항입니다.

[out] SymbolFilePath

생성된 기호 파일의 이름입니다. 이 파일의 확장명은 일반적으로 .dbg입니다.

[in] Flags

이미지에서 분할할 정보입니다. 이 매개 변수는 0이거나 다음 값의 조합일 수 있습니다.

의미
SPLITSYM_EXTRACT_ALL
0x00000002
일반적으로 기호가 분할된 이미지에는 기호 파일 이름이 있는 MISC 디버그 디렉터리가 계속 포함됩니다. 따라서 디버거는 여전히 기호를 찾을 수 있습니다. 이 플래그를 사용하면 이 링크가 제거됩니다. 최종 결과는 Microsoft 링커에서 -debug:none 스위치를 사용하는 것과 비슷합니다.
SPLITSYM_REMOVE_PRIVATE
0x00000001
기호 파일을 생성할 때 프라이빗 CodeView 기호 정보를 제거합니다.
SPLITSYM_SYMBOLPATH_IS_SRC
0x00000004
기호 파일 경로에는 .pdb 파일을 찾는 대체 경로가 포함되어 있습니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.

설명

이미지에서 기호를 제거할 때 SplitSymbols 함수를 사용해야 합니다. 호환되는 모든 디버거가 이해하는 기호 파일을 만듭니다. 형식은 WinNT.h에 정의되며 이미지 헤더와 섹션 헤더의 배열, FPO 정보 및 이미지의 모든 디버깅 기호 정보로 구성됩니다.

SymbolsPath 매개 변수가 NULL이면 기호 파일이 이미지가 있는 디렉터리에 저장됩니다. 그렇지 않으면 이미지의 확장과 일치하는 SymbolsPath 아래의 하위 디렉터리에 저장됩니다. 이 메서드를 사용하면 기호 파일 충돌 가능성이 줄어듭니다. 예를 들어 myapp.exe 기호는 SymbolsPath\exe 디렉터리에 있고 myapp.dll 기호는 SymbolsPath\dll 디렉터리에 있습니다.

이 함수와 같은 모든 ImageHlp 함수는 단일 스레드입니다. 따라서 둘 이상의 스레드에서 이 함수로 호출하면 예기치 않은 동작이나 메모리 손상이 발생할 수 있습니다. 이를 방지하려면 둘 이상의 스레드에서 이 함수로의 모든 동시 호출을 동기화해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 imagehlp.h
라이브러리 Imagehlp.lib
DLL Imagehlp.dll

참고 항목

ImageHlp 함수