SymLoadModuleEx 함수(dbghelp.h)
지정된 모듈에 대한 기호 테이블을 로드합니다.
구문
DWORD64 IMAGEAPI SymLoadModuleEx(
[in] HANDLE hProcess,
[in] HANDLE hFile,
[in] PCSTR ImageName,
[in] PCSTR ModuleName,
[in] DWORD64 BaseOfDll,
[in] DWORD DllSize,
[in] PMODLOAD_DATA Data,
[in] DWORD Flags
);
매개 변수
[in] hProcess
원래 SymInitialize 함수에 전달된 프로세스에 대한 핸들입니다.
[in] hFile
실행 파일 이미지에 대한 파일에 대한 핸들입니다. 이 인수는 디버거가 디버깅 이벤트에서 가져온 파일 핸들을 전달하는 디버거에서 주로 사용됩니다. NULL 값은 hFile이 사용되지 않음을 나타냅니다.
[in] ImageName
실행 파일 이미지의 이름입니다. 이 이름에는 부분 경로, 전체 경로 또는 경로가 전혀 포함될 수 없습니다. 제공된 이름으로 파일을 찾을 수 없는 경우 기호 검색 경로가 사용됩니다.
[in] ModuleName
모듈의 바로 가기 이름입니다. 포인터 값이 NULL이면 라이브러리는 기호 파일의 기본 이름을 사용하여 이름을 만듭니다.
[in] BaseOfDll
모듈의 로드 주소입니다. 값이 0이면 라이브러리는 기호 파일에서 로드 주소를 가져옵니다. 기호 파일에 포함된 로드 주소가 반드시 실제 부하 주소가 아닌 것은 아닙니다. 디버거 및 실제 부하 주소가 있는 다른 애플리케이션은 이 함수를 호출할 때 실제 부하 주소를 사용해야 합니다.
이미지가 .pdb 파일인 경우 이 매개 변수는 0일 수 없습니다.
[in] DllSize
모듈의 크기(바이트)입니다. 값이 0이면 라이브러리는 기호 파일에서 크기를 가져옵니다. 기호 파일에 포함된 크기가 반드시 실제 크기일 필요는 없습니다. 디버거 및 실제 크기가 있는 다른 애플리케이션은 이 함수를 호출할 때 실제 크기를 사용해야 합니다.
이미지가 .pdb 파일인 경우 이 매개 변수는 0일 수 없습니다.
[in] Data
표준 PE 헤더 이외의 헤더 를 나타내는 MODLOAD_DATA 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in] Flags
이 매개 변수는 다음 값 중 0개 이상일 수 있습니다. 이 매개 변수가 0이면 함수는 모듈 및 모듈의 기호를 로드합니다.
값 | 의미 |
---|---|
|
모듈을 로드하지만 모듈의 기호는 로드하지 않습니다. |
|
BaseOfDll에 지정된 주소에 ModuleName이라는 가상 모듈을 만듭니다. 이 모듈에 기호를 추가하려면 SymAddSymbol 함수를 호출합니다. |
반환 값
함수가 성공하면 반환 값은 로드된 모듈의 기본 주소입니다.
함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.
모듈이 이미 로드된 경우 반환 값은 0이고 GetLastError 는 ERROR_SUCCESS 반환합니다.
설명
기호 처리기는 모듈에 대한 항목을 만들고 지연된 기호 로드 옵션이 꺼져 있으면 기호를 로드하려고 시도합니다. 지연된 기호 로드를 사용하도록 설정하면 모듈이 지연된 것으로 표시되고 모듈의 기호에 대한 참조가 생성될 때까지 기호가 로드되지 않습니다. 따라서 SymLoadModuleEx를 호출한 후 항상 SymGetModuleInfo64 함수 를 호출해야 합니다.
기호 테이블을 언로드하려면 SymUnloadModule64 함수를 사용합니다.
이와 같은 모든 DbgHelp 함수는 단일 스레드입니다. 따라서 둘 이상의 스레드에서 이 함수로 호출하면 예기치 않은 동작이나 메모리 손상이 발생할 수 있습니다. 이를 방지하려면 둘 이상의 스레드에서 이 함수로의 모든 동시 호출을 동기화해야 합니다.
이 함수의 유니코드 버전을 호출하려면 DBGHELP_TRANSLATE_TCHAR 정의합니다.
예제
예제는 기호 모듈 로드를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | dbghelp.h |
라이브러리 | Dbghelp.lib |
DLL | Dbghelp.dll |
재배포 가능 파일 | DbgHelp.dll 6.0 이상 |