Visual Studio - ("Binary was not built with debug information" 상태로) 소스 코드 디버깅이 안되는 경우
지난 글에서,
닷넷에서 접근해보는 InterSystems의 IRIS Data Platform 데이터베이스
; https://www.sysnet.pe.kr/2/0/12275
IRIS Data Provider가 쿼리를 수행 시 "System.ArgumentNullException" 예외가 발생하는 것을 설명했는데요, 사실 이것을 밝히기 위해 비주얼 스튜디오에서 IRISCommand.ExecuteNonQuery 단계에서 F11(Step-Into) 키를 눌러 진입하려고 했는데,
BP가 걸리지 않았습니다. (물론, "
Enable navigation to decompiled sources" 옵션을 설정한 상태입니다.) 혹시 PDB 파일이 로드되지 않았나 싶어 살펴보니,
"Binary was not built with debug information"라는 메시지가 보입니다. 말 그대로 Debug 정보가 없기 때문입니다.
서드파티 dll 디버깅에 대해 질문드립니다.
; https://www.sysnet.pe.kr/3/0/4852
C# - PDB 파일 경로를 PE 파일로부터 얻는 방법
; https://www.sysnet.pe.kr/2/0/11237
이렇게 "IMAGE_DEBUG_DIRECTORY" 정보가 없는 DLL인 경우 비주얼 스튜디오는 "Enable navigation to decompiled sources" 옵션을 적용해도 아래의 글에서 설명한 이유 때문에,
DEVPATH 환경 변수의 사용 예 - .NET Reflector의 (PDB 연결이 없는) DLL의 소스 코드 디버깅
; https://www.sysnet.pe.kr/2/0/12277
(역어셈블을 이용한) 소스 코드 디버깅이 안 됩니다. 어쩔 수 없습니다. ^^ .NET Reflector를 사용하거나, 아니면 해당 DLL을 IMAGE_DEBUG_DIRECTORY 섹션을 갖도록 재빌드해야만 합니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]