SymGetSymFromName 함수(dbghelp.h)

지정된 이름의 기호를 찾습니다.

참고 이 함수는 호환성을 위해서만 제공됩니다. 애플리케이션은 SymFromName을 사용해야 합니다.
 

구문

BOOL IMAGEAPI SymGetSymFromName(
  [in]      HANDLE           hProcess,
  [in]      PCSTR            Name,
  [in, out] PIMAGEHLP_SYMBOL Symbol
);

매개 변수

[in] hProcess

원래 SymInitialize 함수에 전달된 프로세스에 대한 핸들입니다.

[in] Name

기호를 배치할 기호 이름입니다.

[in, out] Symbol

IMAGEHLP_SYMBOL64 구조체에 대한 포인터입니다.

반환 값

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

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

설명

SymGetSymFromName64 함수는 지정된 이름의 기호를 찾는 데 사용됩니다. 이름에는 기호 검색을 단일 모듈의 기호 테이블로 격리하는 모듈 접두사를 포함할 수 있습니다.

모듈 접두사는 "module!"의 형식입니다. "!" 문자는 모듈 이름과 기호 이름 사이의 구분 기호입니다. 모듈 접두사 없는 경우 로드된 첫 번째 모듈부터 시작하여 각 모듈의 기호 테이블에서 선형 방식으로 검색이 수행됩니다.

두 가지 이유로 모듈 접두사를 사용하는 것이 좋습니다. 첫째, 기호 검색이 훨씬 더 빠르게 발생합니다. 둘째, 지연된 기호 로드가 켜져 있으면 검색을 통해 검색되는 각 모듈에 대해 기호가 로드됩니다. 기호가 발견되면 기호 정보가 호출자가 제공하는 기호 버퍼에 복사됩니다. 호출자는 SymGetSymFromName64를 호출하기 전에 기호 버퍼를 올바르게 할당하고 IMAGEHLP_SYMBOL64 구조에서 필요한 매개 변수를 입력해야 합니다.

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

이 함수는 SymGetSymFromName 함수를 대체합니다. 자세한 내용은 업데이트된 플랫폼 지원을 참조하세요. SymGetSymFromName 은 Dbghelp.h에서 다음과 같이 정의됩니다.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromName SymGetSymFromName64
#else
BOOL
IMAGEAPI
SymGetSymFromName(
    __in HANDLE hProcess,
    __in PCSTR Name,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 dbghelp.h
라이브러리 Dbghelp.lib
DLL Dbghelp.dll
재배포 가능 파일 DbgHelp.dll 5.1 이상

추가 정보

DbgHelp 함수

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize