Visual Studio 2012에서 사용자 지정 프로젝트를 디버깅하기 위해 기호 파일이로드되지 않음
Visual Studio 2012에는 실행 파일과 클래스 라이브러리 프로젝트로 구성된 대규모 솔루션이 있습니다. 응용 프로그램을 디버깅 할 때 특정 클래스 라이브러리 프로젝트의 중단 점이 적중되지 않습니다.
나는 보았다 디버그> 윈도우> 모듈 해당 프로젝트에 대한 기호의 상태를 확인하기 위해 창은 말한다 "찾거나 PDB 파일을 열 수 없습니다" .
또한 "사용자 코드" 열 아래에 "아니오" 라고 표시됩니다.
해당 열에 "아니오"를 표시하는 솔루션의 몇 가지 다른 사용자 지정 프로젝트가 있고 해당 기호도로드되지 않습니다. "사용자 코드"아래에 "예"가있는 것은 pdb가로드 된 것 같습니다. 문제가 없습니다. 그러나 이것이 관련성이 있는지 확실하지 않습니다.
dll에서 dumpbin / headers 를 사용 했으며 pdb 파일의 경로가 있고 정확합니다.
모듈이 심볼 로딩을위한 제외 목록에 확실히 없습니다.
또한 모듈 창에서 항목을 마우스 오른쪽 버튼으로 클릭하고 "기호로드"를 선택 하고 dll 헤더에 제공된 경로로 이동해 보았습니다 . pdb를 선택하면 "이 폴더에서 일치하는 기호 파일을 찾을 수 없습니다 . "라고 표시 됩니다.
이 폴더와 파일을 삭제하고, 솔루션을 정리하고, 닫고, 전체를 다시 빌드 한 후에 이것을 얻습니다. pdb는 확실히 문제의 dll과 동시에 빌드되었습니다.
따라서 분명히 문제는 오류 메시지의 "pdb를 열 수 없음"부분입니다.
나는 2 대의 컴퓨터에서 이것을 시도했고 둘 다 동일한 행동을 보이고있다.
누구든지 여기서 어디로 가야할지에 대한 제안을 할 수 있습니까? 그리고 아마도 도대체 dll에 해당하는 빌드 된 pdb가로드되지 않는 이유는 무엇입니까?
몇 가지 도구를 사용하여 pdb와 dll이 실제로 일치하는지 확인하고 chkmatch를 사용하여 실행중인 dll의 GUID와 obj 폴더의 pdb가 일치하지 않는 것을 확인할 수있었습니다.
따라서 프로젝트의 obj 폴더에있는 dll과 pdb가 일치하더라도 빌드 후 이벤트에 의해 실제로 응용 프로그램의 대상 폴더에 복사 된 dll은 이전 빌드의 이전 dll이었습니다.
빌드 후 이벤트는 특정 프로젝트가 빌드되거나 적어도 빌드가 완료되기 전에 실행 중이 었으며 이후에 계속되는 빌드에 의해 덮어 쓰기 된 bin에서 기존 dll을 복사했습니다.
솔루션에 대한 프로젝트 종속성을 편집하고 빌드 후 이벤트가있는 프로젝트가로드되지 않은 프로젝트에 종속되어 있는지 확인하여 문제를 해결했으며 이제 디버그 중에 pdb가로드됩니다.
시작 프로젝트 폴더에서 bin 및 obj 폴더를 삭제하고 솔루션을 다시 빌드했습니다.
나를 위해 방금 IIS에서 프로젝트를 삭제하고 다시 만들었고 제대로 작동합니다.
나를 위해 그것은 chkmatch 도구를 사용한 다음 Visual Studio를 닫고 열고 정리하고 다시 만드는 데 도움이되었습니다. 이제 내 pdb도로드됩니다. Nanhydrin이 지적했듯이 디버그-> Windows-> 모듈에서 확인할 수 있습니다.이보기는 디버깅 중에 만 액세스 할 수 있습니다.
제 경우에는 참조 된 dll의 이전 버전이 GAC에있었습니다. 그것을 정리하고 작동했습니다.
메시지를받은 프로젝트가 구축 될 때 최적화되고 있다는 것을 알았습니다.
프로젝트 속성, 컴파일 탭, 고급 컴파일 옵션 ...으로 이동하여 Enable Optimizations
확인란을 선택 취소했습니다.
알림 : 프로젝트를 "디버그"구성에 넣으십시오 ... 저와 같이 잊고 어리석은 사람들을 위해.
솔루션에서 프로젝트를 삭제하고 나를 위해 일한 솔루션에 다시 추가했습니다. :)
여기 파티에 조금 늦었습니다.
두 개의 별도 웹 사이트가 있습니다 (Visual Studio의 다른 솔루션에 있음). 사이트 중 하나를 처음로드 할 때 이미지를 반환하는 다른 사이트를 호출했습니다.
이 두 사이트 모두 공통 DLL을 참조했지만 한 사이트에서 작업하는 동안 다른 사이트가 'Release'빌드에 남아 있다는 사실을 인식하지 못했습니다. 사이트가로드 된 후 문제가되는 DLL이 다시 빌드되었지만 기호는 없습니다.
모듈 디버그 창 (매우 도움이 됨)에 대해 언급하고 빌드 후 이벤트를 올바르게 진행하게 해준 Nanhydrin에게 찬사를 보냅니다.
제 경우에는에 체크 표시가 Enable Just My Code
있었습니다 Tools>>Options>>Debugging>>General
.
나는 그것을 확인하지 않았고 작동했습니다.
나를 위해 일한 다른 스레드의 답변 : https://stackoverflow.com/a/28476665/5969306-Visual
Studio에서 : 프로젝트 속성-> 빌드-> 고급 단추-> 디버그 정보 드롭 다운 및 값이 아닌지 확인 "없음".
나는 방금이 문제가 있었고 미래에 다른 사람들 (아마도 다시 나도?!)의 도움으로 여기에 수정을 할 것이라고 생각했습니다 ...
원격 서버의 프로세스에 연결할 때 "연결 대상"이 다음으로 설정되어 있는지 확인하십시오.
디버깅 할 코드 유형을 자동으로 결정
To do this, When the server qualifier has been provided and a list of processes is visible, click the "Select" button next to the "Attach to" input.
Then, select "Automatically determine the type of code to debug" and OK out of the screen, then attach.
This fixed the issue for me, at least.
I had a line like this in my debug window:
Symbols for the module 'MyModule.dll' were not loaded.
I removed the 'Optimize code' option in Project properties -> Build. And the error disappeared.
This issue may be due to wrong reference of dlls used in project.
Delete obj and bin folders in current project and build project again.
Check for permission to ASP.NET Temporary folder:
"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files"
User of application pool has to have the rights to subfolder with ASP.NET files, something like:
root\60039743\c28e12ee
- Check options from this answer: https://stackoverflow.com/a/38377530/6911991
- Click Advanced and check that Debugging Information is set to FULL
- Check Run Configuration in all projects in the solution
I had this issue , tried all the other solutions (it took 2 days !! I'm crying... !TWO DAYS!) But finally I realized that my file was registered in GAC, I removed it and the problem was resolved.
At the command prompt, type the following command:
gacutil –u <assembly name>
'IT TIP' 카테고리의 다른 글
DB 컨텍스트에 ObjectStateManager 속성이없는 이유는 무엇입니까? (0) | 2021.01.06 |
---|---|
START_STICKY, START_NOT_STICKY 및 START_REDELIVER_INTENT 서비스 란? (0) | 2021.01.06 |
가상 파일 처리는 어떻게합니까? (0) | 2021.01.06 |
SCSS / SASS : 쉼표로 구분하여 클래스 목록을 동적으로 생성하는 방법 (0) | 2021.01.06 |
Groovy에서 @Delegate, @Mixin 및 Traits의 차이점은 무엇입니까? (0) | 2021.01.06 |