2012-03-27 3 views
2

다른 DLL에서 내 자신의 코드에 대한 참조가 여러 개인 프로젝트가 있습니다. dll 중 하나는 웹 사이트를 실행할 때 pdb 파일을로드하고 다른 하나는로드하지 않습니다.PDB 일부 프로젝트에서는 파일이로드되지 않습니다.

LOTS_OF_TEXT \ Shared.BusinessLayer.DLL '
LOTS_OF_TEXT \ Shared.Visual.Utilities.DLL', 기호가로드 : 출력에서 ​​

나는이 참조하십시오.

는 내가 확인을 두 번 그들 모두는 "LOTS_OF_TEXT"위치에 해당하는 PDB 파일이 ...하지만 그 중 하나는 기호를로드 (및 디버깅을 할 수 있습니다)하지만, 다른 하나는하지 않습니다.

왜? Shared.BusinessLayer.DLL을 디버그 할 수 있도록 Symbol을로드하려면 어떻게합니까? 그들은 변경할 때

편집
는 참고를 위해, 나는 내 디버깅 설정이 기호를 찾기 위해 Visual Studio를 말할 곳이다 ... /AppData/Local/Temp/SymbolCache에 댐의 복사에게 PDB 파일이 있습니다.

+0

BTW ... 벨베데레 란 무엇입니까? 구글의 'Belvedere C#'은 아무런 도움이되지 않습니다. –

+1

.pdbs를 복사하는 것은 일반적으로 좋지 않습니다. 생성 된 위치에두면 실행 파일은 원래 경로를 저장합니다. Debug + Windows + Modules에서 모듈을 마우스 오른쪽 단추로 클릭하고 "Symbol Load Information"을 선택하여 디버거가 pdb를 찾은 위치를 확인합니다. –

+0

현재 빌드 구성에서 특정 프로젝트가 디버그로 설정되어 있습니까? –

답변

2

vsvars cmd 프롬프트 (또는 powershell)를 시작하고 LOTS_OF_TEXT 폴더로 이동하십시오. Visual Studio에는 .dll 또는 .exe의 구조를 검사 할 수있는 'dumpbin.exe'도구가 함께 제공됩니다. 디버그 기호를 찾으려면 dumpbin /headers Shared.BusinessLayer.DLL을 입력하여 cmd 프롬프트에서 dumpin을 실행하고 의 헤더 정보에 심볼 경로가 표시되어야합니다 ( 심볼로 실제로 빌드 된 경우). 심볼이 있거나 검색 경로에있는 경우 심볼을로드해야합니다.

Visual Studio에서 도구 -> 옵션 -> 디버깅 -> 기호로 이동하여 '자동으로 심볼로드 :'라디오 버튼이 '모든 모듈에 설정'되어 있는지 확인하십시오. 제외되지 않는 한 '이며 제외 목록에는 관련 이미지가 포함되어 있지 않습니다.

+0

"해당 DLL에서 덤프/헤더 실행"의 의미는 무엇입니까? –

+0

@James - dumpbin.exe는 .dll 및 .exe 이미지의 다양한 측면을 볼 수있는 Visual Studio와 함께 제공되는 도구입니다. dll에 심볼이 있으면 해당 심볼의 경로가 이미지의 헤더에 기록됩니다. –

+0

감사합니다 - 내 경우에 참조 된 .exe 파일이 "제외 목록"으로 이동했습니다. – Jonno

관련 문제