문제

나는 사용 중입니다 Windbg 관리 된 코드 (C#, C#, C#)에서 충돌 덤프를로드하려면 모든 CPU), 그리고 x64 플랫폼에서 충돌 덤프가 생성됩니다. X64 플랫폼에서 디버깅을하고 있습니다. 나는 관련을 두었다 PDB 기호 경로에 파일을 파일하십시오.

그러나 Windbg는 항상 이상한 폴더에서 기호를 찾습니다. 다음은 예입니다 (제가 사용하여! Sym Noisy를 사용했을 때) :

SYMSRV:  c:\MySymbols\FooService.pdb\4311207E2E2D442CB7473828D2488F941\FooService.pdb not found

내 응용 프로그램이 호출됩니다 FooService.exe 관련 PDB 파일의 이름이 지정되었습니다 FooService.pdb. 나는 설정했다 C:\MySymbols 기호 경로로 복사했습니다 FooService.pdb 디렉토리로 C:\MySymbols. 그러나 왜 Windbg는 찾지 못하는가 FooService.pdb 안에 C:\MySymbols, 그러나 이상한 하위 폴더에서 "fooservice.pdb 4311207E2E2D442CB7473828D2488F941"?

내 시나리오에서 PDB 심볼 파일을로드하기 위해 최상의 솔루션은 무엇입니까 (하위 폴더를 만들어야합니까? FooService.pdb\4311207E2E2D442CB7473828D2488F941 혼자서 수동으로)?

도움이 되었습니까?

해결책

경로의 이상한 부분은 Symbol Cache에서 PDB를 버전하는 데 사용된다고 생각합니다. 캐시는 동일한 응용 프로그램의 다른 버전을 포함하여 많은 응용 프로그램에 사용할 수 있으므로 Symbol Downler는 분리하기 위해 무언가를해야합니다.

기호 로더가 사용하여 캐시 된 사본을 무시하도록 강제로 .reload /fo 명령. 와 결합 .sympath 옵션 로딩을 설정할 수 있어야합니다. 심볼 경로에 로컬 경로를 추가하는 쉬운 방법은 .sympath+ <PATH>. 그 후에 .reload /fo 이전에 캐시 된 PDB를 무시합니다.

편집 : 나는 처음에 당신의 질문을 잘못 읽었다고 생각하면서 대답을 조금 조용히 바꿨습니다. 이 업데이트가 더 유용하기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top