SymGetSymFromName 함수(dbghelp.h)
지정된 이름의 기호를 찾습니다.
구문
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 이상 |