문제

기본적으로 내가 원하는 작업 : pdb 파일에는 소스 파일의 위치 (예 : C:\dev\proj1\helloworld.cs)가 포함되어 있습니다.다른 위치 (예 : \more\differenter\location\proj1\helloworld.cs)를 포함하도록 해당 pdb 파일을 수정할 수 있습니까?

도움이 되었습니까?

해결책

Windows 용 디버깅 도구의 소스 인덱싱 기능을 사용하면 소스 저장소에있는 파일의 적절한 수정 버전에 대한 참조를 PDB 파일의 대체 스트림으로 저장할 수 있습니다.

다른 팁

pdb 파일에 포함 된 경로에 대해 좀 더 일반적으로 알고 싶다면 먼저 MS-DOS subst 명령을 사용하여 특정 폴더를 드라이브 문자에 매핑 할 수 있습니다. 라코 디스

그런 다음 N : 드라이브와 관련된 프로젝트를 열고 다시 빌드하십시오.PDB 파일은 N :의 소스 파일을 참조합니다.이제 빌드 할 때했던 것처럼 나중에 루트 디렉토리 "N :"을 호출하는 한 특정 소스 파일 세트를 어디에 두는지는 중요하지 않습니다.

이 방법은 John Robbins가 그의 훌륭한 저서 Debugging Applications for Microsoft .NET에서 권장합니다.및 Microsoft Windows .

내 컴퓨터에서 빌드하지 않은 실행 파일에서 발생한 크래시 덤프를 디버깅하기 위해 이에 대한 답을 찾고 싶었습니다. 따라서 PDB에서 참조 된 소스 코드에 대한 경로가 유효하지 않습니다.실행 파일에 참조 된 PDB에.

검색 결과 작동하는 것을 찾지 못한 후 실행 파일과 PDB를 크래시 덤프 파일과 함께 (즉, 동일한 디렉터리에) 배치하면 VS에서 크래시 덤프를 열고 실행하면 VS가PDB / EXE를 로컬로 사용하십시오.또한 호출 스택에서 항목을 클릭 할 때 소스 코드의 위치를 묻는 메시지도 표시됩니다. 관련된 소스 코드를 가리키면 모두 정상적으로 작동합니다. 훌륭합니다!

어쨌든 이것이 다른 사람에게 도움이되기를 바랍니다 ... :)

On Freund가 이미 지적했듯이 가능합니다. 그러나 디버깅 중에 소스를 찾고로드 할 수만 있다면 그에 따라 소스 경로를 설정하는 것이 더 좋은 방법입니다.디버거에 설정되면 PDB 내부의 모든 하드 코딩 된 경로를 표시합니다.

windbg에서 (예 :) <인용구> .srcpath + 경로 _ 소스 _ 루트 또는 (원격으로 디버깅하는 경우) : <인용구> .lsrcpath + 경로 _ 소스 _ 루트

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