.reload(모듈 다시 로드)
.reload 명령은 지정된 모듈에 대한 모든 기호 정보를 삭제하고 필요에 따라 이러한 기호를 다시 로드합니다. 경우에 따라 이 명령은 모듈 자체를 다시 로드하거나 언로드합니다.
.reload [Options] [Module[=Address[,Size[,Timestamp]]]]
.reload -?
매개 변수
옵션 다음 옵션 중 어느 것이든지:
/d
디버거의 모듈 목록에 있는 모든 모듈을 다시 로드합니다. (모든 매개 변수를 생략하면 사용자 모드 디버깅 중에 이 상황이 기본값입니다.)
/f
디버거가 기호를 즉시 로드하도록 합니다. 이 매개 변수는 지연 기호 로드를 재정의 합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
/i
.pdb 파일 버전의 불일치를 무시합니다. (이 매개 변수를 포함하지 않으면 디버거가 일치하지 않는 기호 파일을 로드하지 않습니다.) /i를 사용하는 경우 명시적으로 지정하지 않더라도 /f도 사용됩니다.
/l
모듈을 나열하지만 해당 기호를 다시 로드하지는 않습니다. (커널 모드에서 이 매개 변수는 다음과 유사한 출력을 제공합니다.lm 명령입니다.)
/n
커널 기호만 다시 로드합니다. 이 매개 변수는 사용자 기호를 다시 로드하지 않습니다. (커널 모드 디버깅 중에만 이 옵션을 사용할 수 있습니다.)
/o
기호 서버의 다운스트림 저장소에 캐시된 파일을 강제로 덮어씁니다. 이 플래그를 사용하는 경우 /f도 포함해야 합니다. 기본적으로 다운스트림 저장소 파일은 덮어쓰여지지 않습니다.
기호 서버는 이진 파일의 모든 다른 빌드의 기호에 고유한 파일 이름을 사용하므로 다운스트림 저장소가 손상되었다고 생각하지 않는 한 이 옵션을 사용할 필요가 없습니다.
/s
시스템의 모듈 이미지 목록에 있는 모든 모듈을 다시 로드합니다. (모든 매개 변수를 생략하면 커널 모드 디버깅 중에 이 상황이 기본값입니다.)
사용자 모드 디버깅을 수행하는 동안 이름으로 개별 시스템 모듈을 로드하는 경우 /s를 포함해야 합니다.
/u
지정된 모듈 및 모든 기호를 언로드합니다. 디버거는 전체 경로에 관계없이 이름이 모듈과 일치하는 로드된 모듈을 언로드합니다. 이미지 이름도 검색됩니다. 자세한 내용은 다음 주의 섹션의 참고를 참조하세요.
/unl
언로드된 모듈 목록의 이미지 정보를 기반으로 기호를 다시 로드합니다.
/사용자
사용자 기호만 다시 로드합니다. (커널 모드 디버깅 중에만 이 옵션을 사용할 수 있습니다.)
/v
자세한 정보 표시 모드를 켭니다.
/w
모듈을 리터럴 문자열로 처리합니다. 이 처리는 디버거가 와일드카드 문자를 확장하지 못하도록 방지합니다.
모듈
호스트 컴퓨터에서 기호를 다시 로드할 대상 시스템의 이미지 이름을 지정합니다. 모듈 에는 파일의 이름 및 파일 이름 확장명을 포함해야 합니다. /w 옵션을 사용하지 않는 한 모듈에는 다양한 와일드카드 문자와 지정자가 포함될 수 있습니다. 구문에 대한 자세한 내용은 문자열 와일드카드 구문을 참조 하세요. 모듈을 생략하면 .reload 명령의 동작은 사용하는 옵션에 따라 달라집니다.
주소
모듈의 기본 주소를 지정합니다. 일반적으로 이미지 헤더가 손상되었거나 페이징된 경우에만 이 주소가 있어야 합니다.
크기
모듈 이미지의 크기를 지정합니다. 대부분의 경우 디버거는 모듈의 올바른 크기를 알고 있습니다. 디버거가 올바른 크기를 모르는 경우 크기를 지정해야 합니다. 이 크기는 실제 모듈 크기 또는 더 큰 숫자일 수 있지만 크기는 더 작은 숫자가 아니어야 합니다. 일반적으로 이미지 헤더가 손상되었거나 페이징된 경우에만 이 크기가 있어야 합니다.
타임 스탬프
모듈 이미지의 타임스탬프를 지정합니다. 대부분의 경우 디버거는 모듈의 올바른 타임스탬프를 알고 있습니다. 디버거가 타임스탬프를 모르는 경우 타임스탬프를 지정해야 합니다. 일반적으로 이미지 헤더가 손상되었거나 페이징된 경우에만 이 타임스탬프가 있어야 합니다.
주소, 크기 및 타임스탬프 매개 변수 사이에 빈 공간이 없어야 합니다.
-?
이 명령에 대한 짧은 도움말 텍스트를 표시합니다.
환경
항목 | 설명 |
---|---|
모드 | 사용자 모드, 커널 모드 |
대상 | 라이브, 크래시 덤프 |
플랫폼 | 모두 |
추가 정보
지연(지연) 기호 로드에 대한 자세한 내용은 지연 기호 로드를 참조 하세요. 다른 기호 옵션에 대한 자세한 내용은 기호 옵션 설정을 참조 하세요.
설명
.reload 명령은 기호 정보를 읽지 않습니다. 대신 이 명령을 사용하면 디버거가 기호 파일이 변경되었거나 새 모듈을 모듈 목록에 추가해야 한다는 것을 알 수 있습니다. 이 명령을 사용하면 디버거가 해당 모듈 목록을 수정하고 지정된 모듈에 대한 기호 정보를 삭제합니다. 정보가 필요할 때까지 실제 기호 정보는 개별 .pdb 파일에서 읽지 않습니다. (이러한 종류의 로드를 지연 기호 로드 또는 지연된 기호 로드라고 합니다.)
/f 옵션을 사용하거나 ld(기호 로드) 명령을 실행하여 기호 로드를 강제로 수행할 수 있습니다.
.reload 명령은 시스템이 응답하지 않는 경우(즉, 크래시) 디버그 중인 대상 컴퓨터에 대한 기호가 손실될 수 있는 경우에 유용합니다. 기호 트리를 업데이트한 경우에도 이 명령이 유용할 수 있습니다.
모듈이 언로드되거나 페이징되는 등의 이유로 이미지 헤더가 올바르지 않은 경우 /unl 인수를 사용하거나 주소와 크기를 모두 지정하여 기호를 올바르게 로드할 수 있습니다.
.reload /u 명령은 광범위한 검색을 수행합니다. 디버거는 먼저 경로에 관계없이 모듈을 정확한 모듈 이름과 일치시키려고 시도합니다. 디버거에서 이 일치 항목을 찾을 수 없는 경우 모듈 은 로드된 이미지의 이름으로 처리됩니다. 예를 들어 메모리에 있는 HAL의 모듈 이름이 halacpi.dll 경우 다음 명령 둘 다 해당 기호를 언로드합니다.
kd> .reload /u halacpi.dll
kd> .reload /u hal
사용자 모드 디버깅을 수행하고 대상 애플리케이션의 모듈 목록에 포함되지 않은 모듈을 로드하려는 경우 다음 예제와 같이 /s 옵션을 포함해야 합니다.
0:000> .reload /u ntdll.dll
Unloaded ntdll.dll
0:000> .reload /s /f ntdll.dll