다음을 통해 공유


모듈

이미지는 Windows가 사용자 모드 프로세스 또는 커널의 일부로 로드한 실행 파일, DLL 또는 드라이버입니다. 이미지를 로드한 파일을 해당 이미지 파일이라고 합니다.

디버거 엔진은 각 프로세스(또는 커널 모드에서 가상 프로세스)에 대한 모듈 목록을 캐시합니다. 일반적으로 이 목록의 각 모듈은 프로세스의 이미지를 나타냅니다. 엔진의 모듈 목록은 다시 로드를 사용하여 대상과 동기화할 수 있습니다.

참고 커널 모드 디버깅에서 가상 프로세스에 대한 엔진의 모듈 목록에는 시스템 전체 커널 모드 모듈과 현재 프로세스의 사용자 모드 모듈이 모두 포함됩니다.

모듈은 대상의 가상 주소 공간에 있는 기본 주소 또는 엔진이 대상에 대해 유지 관리하는 모듈 목록의 인덱스로 지정할 수 있습니다. 모듈의 인덱스는 모듈 목록에서 해당 위치와 같으므로 인덱스가 낮은 모듈이 언로드되면 이 인덱스가 변경됩니다. 언로드된 모든 모듈에는 인덱스가 있습니다. 이는 항상 로드된 모듈의 인덱스보다 높습니다. 모듈의 기본 주소는 로드된 상태로 유지되는 한 변경되지 않습니다. 경우에 따라 모듈이 언로드된 후 다시 로드되는 경우 변경될 수 있습니다.

인덱스는 0과 대상의 모듈 수에서 1을 뺀 값 사이의 숫자입니다. 현재 프로세스의 모듈 수는 GetNumberModules를 호출하여 찾을 수 있습니다.

인덱스를 사용하여 GetModuleByIndex를 호출하여 기본 주소를 찾을 수 있습니다. 지정된 이름의 기호를 소유하는 모듈의 기본 주소는 GetSymbolModule을 사용하여 찾을 수 있습니다.

다음 메서드는 지정된 모듈의 인덱스 및 기본 주소를 모두 반환합니다.

  • 지정된 모듈 이름을 가진 모듈을 찾으려면 GetModuleByModuleName을 사용합니다.

  • 가상 주소 범위에 지정된 주소가 포함된 모듈은 GetModuleByOffset에서 반환됩니다. 이 메서드는 모듈의 기본 주소가 지정된 모듈 인덱스 찾기에 사용할 수 있습니다.

다음 메서드는 기본 주소 또는 인덱스로 지정된 모듈에 대한 정보를 반환합니다.

언로드된 모듈

사용자 모드 디버깅 중에 언로드된 모듈은 Windows Server 2003 이상 버전의 Windows에서만 추적됩니다. 이전 버전의 Windows는 커널 모드에서만 언로드된 모듈을 추적했습니다. 추적되면 로드된 모듈 다음에 인덱싱됩니다. 따라서 대상의 모듈을 검색하는 모든 메서드는 로드된 모든 모듈과 언로드된 모듈을 검색합니다. 언로드된 모듈을 사용하여 언로드된 코드를 호출하려고 시도하여 발생하는 오류를 분석할 수 있습니다.

가상 모듈

가상 모듈은 메모리 영역에 레이블을 지정하는 방법으로 만들 수 있습니다. 이러한 모듈은 실제 기호를 포함할 수 없지만 합성 기호를 포함할 수 있습니다. AddSyntheticModule 메서드는 새 가상 모듈을 만듭니다. RemoveSyntheticModule을 사용하여 가상 모듈을 제거할 수 있습니다. 대상의 모든 모듈을 다시 로드하면 모든 가상 모듈이 삭제됩니다.

이미지 경로

실행 파일 이미지 경로는 실행 이미지를 검색할 때 엔진에서 사용됩니다.

실행 파일 이미지 경로는 세미콜론(;)으로 구분된 여러 디렉터리로 구성됩니다. 이러한 디렉터리 순서대로 검색됩니다.

실행 파일 이미지 경로에 대한 개요는 실행 파일 이미지 경로를 참조하세요.

실행 파일 이미지 경로에 디렉터리를 추가하려면 AppendImagePath 메서드를 사용합니다. 전체 실행 파일 이미지 경로는 GetImagePath 에서 반환되며 SetImagePath를 사용하여 변경할 수 있습니다.

추가 정보

프로세스 및 가상 프로세스에 대한 자세한 내용은 스레드 및 프로세스를 참조하세요.