SrcSrv 사용
WinDbg, KD, NTSD 또는 CDB에서 SrcSrv 를 사용하려면 최신 버전의 Windows용 디버깅 도구 패키지(버전 6.3 이상)를 설치했는지 확인합니다. 그런 다음 원본 경로에 있는 디렉터리에서 세미콜론으로 구분된 텍스트를 srv*
원본 경로에 포함합니다.
예:
.srcpath srv*;c:\someSourceCode
이전 예제와 같이 원본 경로가 설정된 경우 디버거는 먼저 SrcSrv 를 사용하여 대상 모듈의 기호 파일에 지정된 위치에서 원본 파일을 검색합니다. SrcSrv가 원본 파일을 검색할 수 없는 경우 디버거는 c:\someSourceCode에서 검색을 시도합니다. srv*가 경로의 첫 번째 요소인지 또는 나중에 표시되는지에 관계없이 디버거는 경로에 나열된 다른 디렉터리를 검색하기 전에 항상 SymSrv를 사용합니다.
SrcSrv에서 원본 파일을 검색하는 경우 디버깅 세션이 끝난 후에도 하드 드라이브에 남아 있습니다. 원본 파일은 홈 디렉터리의 src 하위 디렉터리에 로컬로 저장됩니다(기호 서버와 달리 원본 서버는 구문 자체에 로컬 캐시를 srv*
지정하지 않음). 홈 디렉터리의 기본값은 Windows용 디버깅 도구 설치 디렉터리입니다. !homedir 확장을 사용하거나 DBGHELP_HOMEDIR 환경 변수를 설정하여 변경할 수 있습니다. 홈 디렉터리의 src 하위 디렉터리가 아직 없으면 만들어집니다.
SrcSrv 디버깅
디버거에서 원본 파일을 추출하는 데 문제가 발생하는 경우 -n 명령줄 매개 변수를 사용하여 디버거를 시작하여 해당 명령의 출력과 함께 실제 원본 추출 명령을 확인합니다. !sym noisy 명령은 동일한 작업을 수행하지만 이전 추출 시도에서 중요한 정보를 이미 놓쳤을 수 있습니다. 디버거가 연결할 수 없는 것으로 보이는 버전 제어 리포지토리에서 원본에 액세스하려고 포기하기 때문입니다.
원본 파일 검색
.open(오픈 소스 파일) 명령을 사용하여 SrcSrv를 통해 새 소스 파일을 여는 경우 -m Address 매개 변수를 포함해야 합니다.
DbgHelp API는 이전에 나열된 디버거 이외의 도구에서 SrcSrv 를 쉽게 사용할 수 있도록 SymGetSourceFile 함수를 통해 SrcSrv 기능에 대한 액세스를 제공합니다. 검색할 원본 파일의 이름을 검색하려면 SymEnumSourceFiles 또는 SymGetLineFromAddr64 함수를 호출합니다. DbgHelp API에 대한 자세한 내용은 Windows용 디버깅 도구 설치 디렉터리의 sdk/help 하위 디렉터리에서 찾을 수 있는 dbghelp.chm 설명서를 참조하거나 디버그 도움말 라이브러리를 참조하세요.
AgeStore를 사용하여 캐시 크기 줄이기
SrcSrv에서 다운로드한 모든 원본 파일은 디버깅 세션이 끝난 후에도 하드 드라이브에 남아 있습니다. 원본 캐시의 크기를 제어하기 위해 AgeStore 도구를 사용하여 지정된 날짜보다 오래된 캐시된 파일을 삭제하거나 캐시 내용을 지정된 크기 이하로 줄일 수 있습니다. 자세한 내용은 AgeStore를 참조하세요.