SymGetLineFromAddr 함수(dbghelp.h)

지정된 주소의 원본 줄을 찾습니다.

구문

BOOL IMAGEAPI SymGetLineFromAddr(
  [in]  HANDLE         hProcess,
  [in]  DWORD          dwAddr,
  [out] PDWORD         pdwDisplacement,
  [out] PIMAGEHLP_LINE Line
);

매개 변수

[in] hProcess

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

[in] dwAddr

줄을 배치해야 하는 주소입니다. 주소가 선 경계에 있을 필요는 없습니다. 줄의 시작 뒤와 줄의 끝 앞에 주소가 나타나면 줄이 발견됩니다.

[out] pdwDisplacement

줄의 시작 부분부터 바이트 단위의 변위 또는 0입니다.

[out] Line

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

반환 값

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

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

설명

호출자는 SymGetLineFromAddr64를 호출하기 전에 버퍼를 올바르게 할당하고 IMAGEHLP_LINE64 구조체의 필요한 멤버를 채워야 합니다.

이 함수는 다른 함수에서 다시 사용할 수 있는 버퍼에 대한 포인터를 반환합니다. 따라서 다른 버퍼에 반환된 데이터를 즉시 복사해야 합니다.

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

이 함수의 유니코드 버전을 호출하려면 DBGHELP_TRANSLATE_TCHAR 정의합니다. SymGetLineFromAddrW64 는 Dbghelp.h에서 다음과 같이 정의됩니다.

BOOL
IMAGEAPI
SymGetLineFromAddrW64(
    _In_ HANDLE hProcess,
    _In_ DWORD64 dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
 #define SymGetLineFromAddr64   SymGetLineFromAddrW64
#endif

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromAddr SymGetLineFromAddr64
#define SymGetLineFromAddrW SymGetLineFromAddrW64
#else
BOOL
IMAGEAPI
SymGetLineFromAddr(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINE Line
    );

BOOL
IMAGEAPI
SymGetLineFromAddrW(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW Line
    );
#endif

예제

예제는 주소별 기호 정보 검색을 참조하세요.

요구 사항

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

추가 정보

DbgHelp 함수

IMAGEHLP_LINE64

SymGetLineFromName64

SymInitialize