문제

Visual Studio에서 애플리케이션을 디버깅하고 싶지만 클래스 1개에 대한 소스 코드만 있습니다.해당 파일에서 단일 함수를 실행하기만 하면 되지만, 이를 수행하기 위해 필요한 작업이 무엇인지 이해하지 못합니다.나는 단계가 일반적으로 다음과 같다고 생각합니다.

  1. VS에서 파일 열기
  2. "기호"(.PDB 파일)에 로드
  3. 실행 중인 프로세스에 연결

#1과 #3을 수행하는 방법을 알고 있지만 .PDB 파일 없이 #2를 수행하는 방법을 모르겠습니다.이를 작동시키기 위해 .PDB 파일을 생성할 수 있습니까?감사해요!

도움이 되었습니까?

해결책

*.pdb 파일이 필요합니다(게시물의 2단계). 이 파일에는 소스 코드와 컴파일된 어셈블리 간의 매핑이 포함되어 있습니다.그래서 당신의 단계는 정확합니다.소스 파일이 원본 파일과 다른 경우 BP 속성 대화 상자에서 "소스 코드가 원본 버전과 다를 수 있도록 허용" 체크 표시를 설정하세요.

Visual Studio의 중단점 및 추적점

PDB 파일이 없으면 다음을 사용하여 프로젝트를 디컴파일해 볼 수 있습니다. Reflector.FileDisassembler 또는 반사판용 FileGenerator.이러한 파일을 다시 컴파일하여 PDB를 얻을 수 있습니다.

또한 살펴보세요 디블렉터 - Reflector용 디버깅 추가 기능.

다른 팁

디버깅하려는 애플리케이션에 속하는 기호 파일(.PDB) 파일이 필요합니다.

MSDN:PDB 파일

Visual Studio 디버거는 EXE 또는 DLL 파일의 PDB 경로를 사용하여 project.pdb 파일을 찾습니다.디버거가 해당 위치에서 PDB 파일을 찾을 수 없거나 경로가 유효하지 않은 경우(예: 프로젝트가 다른 컴퓨터로 이동된 경우) 디버거는 EXE가 포함된 경로와 옵션 대화 상자에 지정된 기호 경로를 검색합니다. .이 경로는 일반적으로 기호 노드의 디버깅 폴더입니다.디버거는 디버깅 중인 바이너리와 일치하지 않는 PDB를 로드하지 않습니다.

기호 파일은 .pdb 파일입니다.실행 파일 옆에 배치하면 기호가 로드되고 소스 파일을 가리킵니다.

귀하의 경우 '기호'는 디버깅하려는 어셈블리의 pdb 파일을 의미합니다.디버거에서는 모든 소스가 필요하지 않고 일치하는 pdb만 있으면 됩니다.pdb는 어셈블리 빌드 중에 생성되며, 안타깝게도 이후에는 pdb를 생성할 수 없습니다.pdb가 없으면 소스 코드보다 낮은 수준에서 디버깅해야 합니다.

컴퓨터에서 어셈블리를 만든 경우 첨부할 때 기호를 찾을 수 있습니다.이 경우 소스에 중단점을 설정하고 해당 코드를 실행하는 데 필요한 모든 작업을 수행하면 중단점에 도달하게 됩니다.

빌드하지 않은 경우 어셈블리용 pdb를 찾아야 합니다.디버그/Windows/모듈 아래에 있는 모듈 창은 버전 정보 및 타임스탬프와 함께 프로세스에 로드된 어셈블리를 알려줌으로써 도움이 될 수 있습니다.

여러 버전의 어셈블리가 있을 수 있는 경우(예: 야간 빌드를 많이 유지하거나 지속적인 통합 빌드에서 마지막 20개 정도의 버전을 유지하는 경우) 해당 정보가 필요합니다.

도움이 되길 바랍니다.

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