기호 파일이라고도 하는 프로그램 데이터베이스(.pdb) 파일은 프로젝트 소스 코드의 식별자 및 문을 컴파일된 앱의 해당 식별자 및 지침에 매핑합니다. 이러한 매핑 파일은 디버거를 소스 코드에 연결하여 디버깅을 가능하게 합니다.
표준 디버그 빌드 구성을 사용하여 Visual Studio IDE에서 프로젝트를 빌드할 때 컴파일러는 적절한 기호 파일을 만듭니다. 이 문서에서는 IDE에서 기호 파일을 관리하는 방법을 설명합니다.
기호 파일에 대한 자세한 설명은 기호 파일 및 Visual Studio 기호 설정 이해를 참조하세요.
심볼 파일의 작동 방식
.pdb 파일에는 앱의 디버그 구성을 증분 연결할 수 있는 디버깅 및 프로젝트 상태 정보가 들어 있습니다. Visual Studio 디버거는 .pdb 파일을 사용하여 디버깅하는 동안 두 가지 주요 정보를 확인합니다.
- Visual Studio IDE에 표시할 원본 파일 이름 및 줄 번호
- 앱에서 중단점을 설정할 위치
기호 파일은 원본 파일의 위치와 필요에 따라 원본 파일을 검색할 서버도 표시합니다.
디버거는 앱을 빌드할 때 생성된 .pdb 파일(즉, 원래 .pdb 파일 또는 복사본)과 정확히 일치하는 .pdb 파일만 로드합니다. 코드 자체가 변경되지 않더라도 앱의 레이아웃이 변경될 수 있으므로 이 정확한 중복이 필요합니다. 자세한 내용은 Visual Studio에서 디버거 기호 파일이 빌드된 이진 파일과 정확히 일치해야 하는 이유를 참조하세요.
팁 (조언)
프로젝트 소스 코드 외부의 코드(예: 프로젝트에서 호출하는 타사 코드 또는 Windows 코드)를 디버그하려면 앱의 빌드와 정확히 일치해야 하는 외부 코드의 .pdb 파일(및 선택적으로 소스 파일)의 위치를 지정해야 합니다.
디버거가 기호를 찾는 위치
Visual Studio IDE에서 프로젝트를 디버그할 때 디버거는 기본적으로 찾을 수 있는 기호 파일을 자동으로 로드합니다.
비고
원격 장치에서 관리 코드를 디버깅할 때 모든 기호 파일은 로컬 컴퓨터 또는 디버거 옵션에 지정된 위치에 있어야 합니다.
디버거는 다음 위치에서 지정된 순서로 기호 파일을 검색합니다.
프로젝트 폴더입니다.
DLL 또는 실행 파일(.exe) 파일 내에 지정된 위치입니다.
기본적으로 컴퓨터에 DLL 또는 .exe 파일을 빌드한 경우 링커는 연결된 .pdb 파일의 전체 경로와 파일 이름을 DLL 또는 .exe 파일에 배치합니다. 디버거는 기호 파일이 해당 위치에 있는지 확인합니다.
DLL 또는 .exe 파일과 동일한 폴더입니다.
기호 파일에 대한 디버거 옵션에 지정된 모든 위치입니다. 심볼 위치를 추가하고 활성화하려면 심볼 위치 및 로드 옵션 구성을 참조하십시오.
모든 로컬 기호 캐시 폴더입니다.
지정된 네트워크, 인터넷 또는 로컬 기호 서버 및 위치(예: Microsoft 기호 서버(선택한 경우) Visual Studio는 프로토콜을 구현하는 기호 서버에서 디버깅 기호 파일을 다운로드할 수 있습니다
symsrv. Visual Studio Team Foundation Server 및 Windows용 디버깅 도구는 기호 서버를 사용할 수 있는 두 가지 도구입니다.사용할 수 있는 기호 서버는 다음과 같습니다.
공용 Microsoft 기호 서버: 시스템 DLL 또는 타사 라이브러리를 호출하는 동안 발생하는 충돌을 디버그하려면 시스템 .pdb 파일이 필요한 경우가 많습니다. 시스템 .pdb 파일에는 Windows DLL, .exe 파일 및 장치 드라이버에 대한 기호가 포함되어 있습니다. 공용 Microsoft 기호 서버에서 Windows 운영 체제, MDAC, IIS, ISA 및 .NET에 대한 기호를 가져올 수 있습니다.
내부 네트워크 또는 로컬 컴퓨터의 기호 서버: 팀 또는 회사는 자체 제품에 대한 기호 서버를 만들고 외부 원본의 기호에 대한 캐시로 만들 수 있습니다. 자신의 컴퓨터에 기호 서버가 있을 수 있습니다.
타사 기호 서버: Windows 애플리케이션 및 라이브러리의 타사 공급자는 인터넷의 기호 서버에 대한 액세스를 제공할 수 있습니다.
경고
공용 Microsoft 기호 서버 이외의 기호 서버를 사용하는 경우 기호 서버와 해당 경로를 신뢰할 수 있는지 확인합니다. 기호 파일에는 임의의 실행 코드가 포함될 수 있으므로 보안 위협에 노출될 수 있습니다.
기호 파일의 위치 및 로드 옵션을 구성합니다
디버거는 기본적으로 기호에 대한 다양한 위치를 확인합니다. 자세한 내용은 디버거에서 기호를 찾는 위치를 참조하세요.
도구(또는 디버그) >옵션 메뉴에서 디버깅> 기호 옵션에 액세스할 수 있습니다.
- 기호 파일에 대한 검색 경로를 지정하고 선택합니다.
- Microsoft, Windows 또는 타사 구성 요소에 대한 기호 서버를 지정합니다.
- 디버거가 기호를 자동으로 로드하도록 하거나 로드하지 않으려는 모듈을 지정합니다.
- 적극적으로 디버깅하는 동안 이러한 설정을 변경합니다. Load symbols while debugging(디버깅하는 동안 기호 로드)을 참조하세요.
심볼 위치와 불러오기 옵션을 지정하려면:
도구(또는 디버그) >옵션 창을 열고 모든 설정>디버깅>일반> 기호검색 위치 섹션>.
오른쪽 창에서 원하는 각 서버( Microsoft 기호 서버, NuGet.org 기호 서버 등)에 대한 확인란을 선택합니다.
기호 파일(.pdb) 위치 그룹 상자의 도구 모음에서 + 추가를 선택하여 새 기호 서버 위치를 추가합니다.
텍스트 필드에 기호 서버 또는 기호 위치의 URL(http), 네트워크 공유 또는 로컬 경로를 입력합니다. 문 완성은 올바른 형식을 찾는 데 도움이 됩니다.
비고
지정된 폴더만 검색됩니다. 검색하려는 모든 하위 폴더에 대한 항목을 추가해야 합니다.
사용 확인란 을 선택한 다음 저장을 선택합니다.
새 Azure DevOps 기호 서버 위치 링크를 선택하여 Azure DevOps 기호 서버 위치를 추가합니다 .
Azure DevOps 기호 서버에 연결 대화 상자에서 사용 가능한 기호 서버를 선택한 다음 연결을 선택합니다.
자세한 내용은 Azure Artifacts 기호 서버 추가를 참조하세요.
- 기호 위치에 대한 로드 순서를 변경하려면Ctrl Up 및 + + Down을 사용하거나 위로 이동 및 아래로 이동을 선택합니다.
- URL 또는 경로를 편집하려면 항목을 두 번 클릭하거나 항목을 강조 표시하고 편집을 선택합니다.
- 항목을 제거하려면 항목을 강조 표시하고 제거를 선택합니다.
도구(또는 디버그) >옵션 대화 상자를 열고 디버깅기호 섹션을 > 확장합니다.
기호 파일(.pdb) 검색 위치 그룹 상자에서 원하는 각 서버(Microsoft 기호 서버, NuGet.org 기호 서버 등)에 대한 확인란을 선택합니다.
기호 파일(+ 위치 그룹 상자의 도구 모음에서 새 위치()를 선택하여 새 기호 서버 위치를 추가합니다.
텍스트 필드에 기호 서버 또는 기호 위치의 URL(http), 네트워크 공유 또는 로컬 경로를 입력합니다. 문 완성은 올바른 형식을 찾는 데 도움이 됩니다.
비고
지정된 폴더만 검색됩니다. 검색하려는 모든 하위 폴더에 대한 항목을 추가해야 합니다.
기호 파일(+ 위치 그룹 상자의 도구 모음에서 새 위치()를 선택하여 새 기호 서버 위치를 추가합니다.
텍스트 필드에 기호 서버 또는 기호 위치의 URL(http), 네트워크 공유 또는 로컬 경로를 입력합니다. 문 완성은 올바른 형식을 찾는 데 도움이 됩니다.
비고
지정된 폴더만 검색됩니다. 검색하려는 모든 하위 폴더에 대한 항목을 추가해야 합니다.
그룹 상자 도구 모음에서
새 Azure DevOps 기호 서버 위치를 선택하여 새 Azure DevOps 기호 서버 위치를 추가합니다.Azure DevOps 기호 서버에 연결 대화 상자에서 사용 가능한 기호 서버를 선택한 다음 연결을 선택합니다.
자세한 내용은 Azure Artifacts 기호 서버 추가를 참조하세요.
- 기호 위치에 대한 로드 순서를 변경하려면Ctrl Up 및 + + Down을 사용하거나 위쪽 및 아래쪽 작업을 선택합니다.
- URL 또는 경로를 편집하려면 항목을 두 번 클릭하거나 항목을 강조 표시하고 F2 키를 누릅니다.
- 항목을 제거하려면 항목을 강조 표시하고 위치 제거 (-)를 선택합니다.
(선택 사항) 복사된 기호에 대한 로컬 폴더 경로를 지정하여 기호 로드 성능을 향상시킵니다.
이 디렉터리 옵션의 캐시 기호에 대해 기호 서버에서 기호를 복사할 수 있는 로컬 폴더 경로를 입력합니다.
비고
C:\Windows 또는 하위 폴더와 같은 보호된 폴더에 로컬 기호 캐시를 배치하지 마세요. 대신 읽기-쓰기 폴더를 사용합니다.
_NT_SYMBOL_PATH 환경 변수가 설정되면, 해당 값이 이 디렉터리에 있는 캐시 기호 값을 재정의합니다.
디버거가 시작될 때 기호 파일(.pdb) 위치에서 로드할 모듈을 지정합니다.
모든 설정>디버깅>일반>기호>검색 및 로드 섹션으로 변경합니다.
드롭다운 목록을 사용하여 자동 기호 검색 옵션의 값을 설정합니다.
검색할 모듈 기호를 자동으로 선택 (권장): Visual Studio에서 검색하고 로드할 기호를 결정하도록 허용합니다. 기본적으로 Visual Studio는 열린 솔루션에서 빌드한 기호를 자동으로 로드하고 일반적인 디버깅 작업을 수행하는 데 필요한 다른 기호를 로드합니다. 이 옵션은 Visual Studio에서 검색하고 로드해야 하는 파일 수를 줄여 디버거 성능을 향상시킵니다. 포함된 모듈 목록을 만들어 다른 기호를 강제로 로드할 수 있습니다.
제외되지 않는 한 모든 모듈 기호를 검색합니다. Visual Studio에서 디버그된 프로세스의 모든 기호를 로드하도록 강제 적용합니다. 디버깅 환경의 속도가 느려질 수 있으므로 이 옵션은 권장되지 않습니다. 제외된 모듈 목록을 만들어 Visual Studio에서 특정 기호를 무시하도록 강제할 수 있습니다.
디버깅>기호 섹션에서 기호 검색 기본 설정 옵션의 값을 선택합니다.
검색할 모듈 기호를 자동으로 선택 (권장): Visual Studio에서 검색하고 로드할 기호를 결정하도록 허용합니다. 기본적으로 Visual Studio는 열린 솔루션에서 빌드한 기호를 자동으로 로드하고 일반적인 디버깅 작업을 수행하는 데 필요한 다른 기호를 로드합니다. 이 옵션은 Visual Studio에서 검색하고 로드해야 하는 파일 수를 줄여 디버거 성능을 향상시킵니다. 포함된 모듈 목록을 만들어 다른 기호를 강제로 로드할 수 있습니다.
제외되지 않는 한 모든 모듈 기호를 검색합니다. Visual Studio에서 디버그된 프로세스의 모든 기호를 로드하도록 강제 적용합니다. 디버깅 환경의 속도가 느려질 수 있으므로 이 옵션은 권장되지 않습니다. 제외된 모듈 목록을 만들어 Visual Studio에서 특정 기호를 무시하도록 강제할 수 있습니다.
제외되지 않는 한 모든 모듈 로드 (기본값): 특별히 제외하는 모듈을 제외하고 기호 파일 위치에 있는 모든 모듈에 대한 모든 기호를 로드합니다.
특정 모듈을 제외하려면 제외된 모듈 지정을 선택합니다. 추가()를+ 선택하고 제외할 모듈의 이름을 입력한 다음 확인을 선택합니다.
지정된 모듈만 로드: 기호 파일 위치에서 지정한 모듈만 로드합니다.
모듈을 식별하려면 포함된 모듈 지정을 선택합니다. 추가()를+ 선택하고 포함할 모듈의 이름을 입력한 다음 확인을 선택합니다. 다른 모듈의 기호 파일은 로드되지 않습니다.
- 설정을 적용하려면 확인을 선택합니다.
자동으로 검색할 모듈 기호를 선택하려면포함된 모듈 목록을 만들어 검색 목록을 지정합니다.
목록 도구 모음에서 + 추가 를 선택합니다.
항목 추가 대화 상자에서 모듈 이름을 입력하고 사용 확인란을 선택한 다음 저장을 선택합니다.
필요에 따라 목록에 항목을 더 추가합니다.
모듈 필터 지정 링크를 선택하여 검색 목록을 지정합니다.
자동으로 검색할 모듈 기호를 선택하려면자동 기호 검색 기본 설정 대화 상자가 열립니다.
모듈 필터 목록을 만들려면 새 모듈(+)을 선택하고 새 모듈을 입력한 다음 확인을 선택합니다.
모듈 필터는 간단한 와일드카드 일치를 지원합니다. 별표 * 는 모든 문자 그룹과 일치합니다. 예를 들어 *myproduct* 는 myproduct.utilities.dll 및 entrypoint.myproduct.exe같은 파일과 일치합니다.
다른 옵션을 구성하여 환경을 사용자 지정할 수 있습니다.
항상 모듈 옆에 있는 기호 로드: Visual Studio는 해당.dll 또는 .exe 파일과 함께 파일 시스템에 저장된 .pdb 파일을 로드합니다. 이 방법은 배포된 웹앱을 디버그하려고 할 때와 같이 유용할 수 있습니다.
필요한 경우 추가 기호를 자동으로 로드합니다. Visual Studio는 단계별로 실행하는 모듈이 프로젝트 또는 모듈 필터에 없더라도 단계별 실행과 같은 일반적인 디버그 작업을 수행하는 기호를 검색합니다. 검색이 결정되는 방법은 내 코드만 설정의 영향을 받을 수 있습니다.
제외된 옵션이 아닌 한 모든 모듈 기호에 대한 검색의 경우 제외된 모듈 목록을 만들어 검색 목록을 지정합니다.
목록 도구 모음에서 + 추가 를 선택합니다.
항목 추가 대화 상자에서 모듈 이름을 입력하고 사용 확인란을 선택한 다음 저장을 선택합니다.
필요에 따라 목록에 항목을 더 추가합니다.
제외 옵션이 아닌 한 모든 모듈 기호에 대한 검색의 경우 기호 제외 기본 설정 대화 상자가 열립니다.
모듈 필터 목록을 만들려면 새 모듈(+)을 선택하고 새 모듈을 입력한 다음 확인을 선택합니다.
이 대화 상자에서는 Visual Studio에서 기호를 로드 하지 않으려는 모듈을 선택할 수 있습니다. 이 시나리오에서 Visual Studio는 일치하는 필터를 추가하여 제외하지 않는 한 디버그된 프로세스의 모든 모듈(타사 모듈 포함)에 대한 기호를 로드하려고 시도합니다. 이 동작을 수정할 수 있는 유일한 방법은 내 코드만 설정하는 것입니다.
디버깅을 위한 다른 기호 옵션Other symbol options for debugging
도구(또는 디버그) > 옵션 메뉴에서 더 많은 디버깅 기호 옵션을 선택할 수 있습니다.
다음 설정은 모든 설정>디버깅>일반 섹션에서 사용할 수 있습니다.
다음 설정은 디버깅>일반 섹션에서 사용할 수 있습니다.
DLL 내보내기 로드(네이티브 전용): C/C++에 대한 DLL 내보내기 테이블을 로드합니다. 자세한 내용은 DLL 내보내기 테이블을 참조하세요. DLL 내보내기 정보를 읽는 데는 약간의 오버헤드가 필요하므로 내보내기 테이블 로드는 기본적으로 해제되어 있습니다. C/C++ 빌드 명령줄에서도 사용할
dumpbin /exports수 있습니다.주소 수준 디버깅을 사용하도록 설정하고 원본을사용할 수 없는 경우 디스어셈블리를 표시합니다. 원본 또는 기호 파일을 찾을 수 없는 경우 항상 디스어셈블리를 표시합니다.
원본 서버 지원 사용: 로컬 컴퓨터에 소스 코드가 없거나 .pdb 파일이 소스 코드와 일치하지 않는 경우 원본 서버를 사용하여 앱을 디버그합니다. 소스 서버는 파일에 대한 요청을 받고 소스 제어에서 실제 파일을 반환합니다. 원본 서버는 srcsrv.dll 라는 DLL을 사용하여 앱의 .pdb 파일을 읽습니다. .pdb 파일에는 소스 코드 리포지토리에 대한 포인터와 리포지토리에서 소스 코드를 검색하는 데 사용되는 명령이 포함되어 있습니다.
srcsrv.ini라는 파일에 허용되는 명령을 나열하여 앱의 .pdb 파일에서 srcsrv.dll 실행할 수 있는 명령을 제한할 수 있습니다. srcsrv.ini 파일을 srcsrv.dll 와 같은 폴더에 넣고 devenv.exe.
중요합니다
임의의 명령은 앱의 .pdb 파일에 포함될 수 있으므로 실행하려는 명령만 srcsrv.ini 파일에 넣어야 합니다. srcsvr.ini 파일에 없는 명령을 실행하려고 시도하면 확인 대화 상자가 트리거됩니다. 자세한 내용은 보안 경고: 디버거는 신뢰할 수 없는 명령을 실행해야 함을 참조하세요.
명령 매개 변수에 대한 유효성 검사가 수행되지 않으므로 신뢰할 수 있는 명령에 주의해야 합니다. 예를 들어 cmd.exe을 srcsrv.ini에 나열한 경우, 악의적인 사용자가 cmd.exe에 위험을 초래할 수 있는 매개변수를 지정할 수 있습니다.
원하는 지원 기본 설정을 선택합니다. 부분 신뢰 어셈블리에 대한 원본 서버 허용(관리 전용)을 염두에 두고 옵션을 표시하지 않고 항상 신뢰할 수 없는 원본 서버 명령을 실행하면 보안 위험이 높아질 수 있습니다.
컴파일러 기호 옵션Compiler symbol options
표준 디버그 빌드 구성을 사용하여 Visual Studio IDE에서 프로젝트를 빌드하면 C++ 및 관리형 컴파일러에서 코드에 적합한 기호 파일을 만듭니다. 코드에서 컴파일러 옵션을 설정할 수도 있습니다.
Visual Studio에서 빌드 구성에 대한 컴파일러 옵션을 설정하려면 디버그 및 릴리스 구성 설정을 참조하세요.
.NET 옵션
/debug를 사용하여 빌드하여 .pdb 파일을 만듭니다.
/debug:full 또는 /debug:pdbonly를 사용하여 응용 프로그램을 빌드할 수 있습니다.
/debug:full을 사용하여 빌드하면 디버그 가능한 코드가 생성됩니다.
/debug:pdbonly를 사용하여 빌드하면 .pdb 파일이 생성되지만 디버그 정보를 사용할 수 있음을 JIT 컴파일러에 알려주는 파일은 생성 DebuggableAttribute 되지 않습니다. 디버깅할 수 없는 릴리스 빌드에 대해 .pdb 파일을 생성하려면 /debug:pdbonly를 사용합니다. 자세한 내용은 /debug(C# 컴파일러 옵션) 또는 /debug(Visual Basic)를 참조하십시오.
C/C++ 옵션
<VC x.pdb> 및 <project.pdb> 파일
C/C++용 .pdb 파일은 /ZI 또는 /Zi를 사용하여 빌드할 때 만들어집니다. Visual C++에서 /Fd 옵션은 컴파일러가 만드는 .pdb 파일의 이름을 지정합니다. IDE를 사용하여 Visual Studio에서 프로젝트를 만들 때 /Fd 옵션은 < 파일을 만들도록 설정됩니다.
메이크파일을 사용하여 C/C++ 응용 프로그램을 빌드하고 /Fd를 사용하여 파일 이름을 지정하지 않고 /ZI 또는 /Zi를 지정하는 경우 컴파일러는 두 개의 .pdb 파일을 만듭니다.
<VC x.pdb>, 여기서 <x>는 Microsoft C++ 컴파일러의 버전을 나타냅니다(예: VC11.pdb).
VC<x.pdb> 파일은 개별 개체 파일에 대한 모든 디버깅 정보를 저장하며 프로젝트 메이크파일과 동일한 디렉터리에 있습니다. 개체 파일을 만들 때마다 C/C++ 컴파일러는 디버그 정보를 VC<x.pdb>에 병합합니다. 따라서 모든 소스 파일에 windows.h<와 같은> 공통 헤더 파일이 포함되어 있더라도 해당 헤더의 typedef는 모든 개체 파일이 아니라 한 번만 저장됩니다. 삽입된 정보에는 형식 정보가 포함되지만 함수 정의와 같은 기호 정보는 포함되지 않습니다.
<프로젝트>.pdb
<project.pdb> 파일은 프로젝트의 .exe 파일에 대한 모든 디버그 정보를 저장하며 \debug 하위 디렉터리에 있습니다. <project.pdb> 파일에는 VC<x.pdb>에 있는 형식 정보뿐만 아니라 함수 프로토타입을 포함한 전체 디버그 정보가 포함되어 있습니다.
VC<x.pdb> 및 <project.pdb> 파일 모두 증분 업데이트를 허용합니다. 또한 링커는 만드는 .exe 또는 .dll 파일에 .pdb 파일의 경로를 포함합니다.
-
DLL의 내보내기 테이블에서 사용할 수 있는 기호를 보는 데 사용합니다
dumpbin /exports. DLL 내보내기 테이블의 기호 정보는 Windows 메시지, Windows 프로시저(WindowProcs), COM 개체, 마샬링 또는 기호가 없는 DLL을 사용하는 데 유용할 수 있습니다. 기호는 모든 32비트 시스템 DLL에 사용할 수 있습니다. 호출은 현재 함수(가장 깊이 중첩됨)가 맨 위에 있는 호출 순서로 나열됩니다.출력을
dumpbin /exports읽으면 숫자가 아닌 문자를 포함하여 정확한 함수 이름을 볼 수 있습니다. 정확한 함수 이름을 보는 것은 함수 이름이 디버거의 다른 곳에서 잘릴 수 있으므로 함수에 중단점을 설정하는 데 유용합니다. 자세한 내용은 덤프빈 /내보내기참조하세요.
웹 애플리케이션
ASP.NET 애플리케이션의 web.config 파일을 디버그 모드로 설정합니다. 디버그 모드를 사용하면 ASP.NET 동적으로 생성된 파일에 대한 기호를 생성하고 디버거가 ASP.NET 애플리케이션에 연결할 수 있습니다. Visual Studio는 웹 프로젝트 템플릿에서 프로젝트를 만든 경우 디버그를 시작할 때 자동으로 설정합니다.
디버깅하는 동안 심볼 로드Load symbols while debugging
모듈, 호출 스택, 로컬, 자동 또는 조사식 창을 사용하여 디버깅하는 동안 기호를 로드하거나 기호 옵션을 변경할 수 있습니다. 자세한 내용은 을 참조하여 디버거가 앱에 어떻게 연결되는지 더 익숙해지세요.
모듈 창에서 심볼 작업
디버깅하는 동안 모듈 창에는 디버거가 사용자 코드 또는 내 코드로 처리하는 코드 모듈과 해당 기호 로드 상태가 표시됩니다. 또한 모듈 창에서 심볼 로딩 상태를 모니터링하고, 심볼을 로드하고, 심볼 옵션을 변경할 수 있습니다.
디버깅하는 동안 기호 위치 또는 옵션을 모니터링하거나 변경하려면:
모듈 창을 열려면 디버깅하는 동안Windows>모듈>를 선택합니다(또는 Ctrl + Alt + U를 누릅니다).
모듈 창에서 Symbol Status 또는 Symbol File 헤더 또는 모듈을 마우스 오른쪽 버튼으로 클릭합니다.
팝업 메뉴에서 다음 옵션 중 하나를 선택합니다.
옵션 설명 로드 심볼 건너뛴 기호, 찾을 수 없는 기호 또는 로드되지 않은 기호가 있는 모듈에 대해 나타납니다. 도구>옵션 창의 모든 설정>디버깅>기호>검색 및 로드 또는 검색 위치 섹션에 지정된 위치에서 기호를 로드하려고 시도합니다. 기호 파일을 찾을 수 없거나 로드되지 않은 경우 검색할 새 위치를 지정할 수 있도록 파일 탐색기를 시작합니다. 기호 로드 정보 로드된 기호 파일의 위치 또는 디버거가 파일을 찾을 수 없는 경우 검색된 위치를 표시합니다. 기호 설정 기호 위치를 편집하고 추가할 수 있는 모든 설정>디버깅>> 섹션의 도구>옵션 창을 엽니다. 항상 자동으로 불러오기 선택한 기호 파일을 디버거에 의해 자동으로 로드되는 파일 목록에 추가합니다. 소스를 심볼 파일로 디컴파일 .NET 코드의 경우 이 옵션을 선택한 다음 어셈블리에 대한 소스 생성 및 포함의 지침을 따를 수 있습니다. 옵션 설명 로드 심볼 건너뛴 기호, 찾을 수 없는 기호 또는 로드되지 않은 기호가 있는 모듈에 대해 나타납니다. 디버깅기호 섹션 아래>옵션 대화 상자에 지정된 위치에서 기호를 > 로드하려고시도합니다. 기호 파일을 찾을 수 없거나 로드되지 않은 경우 검색할 새 위치를 지정할 수 있도록 파일 탐색기를 시작합니다. 기호 로드 정보 로드된 기호 파일의 위치 또는 디버거가 파일을 찾을 수 없는 경우 검색된 위치를 표시합니다. 기호 설정 기호 위치를 편집하고 추가할 수 있는 디버깅>기호 섹션에 대한 도구>옵션 대화 상자를 엽니다. 항상 자동으로 불러오기 선택한 기호 파일을 디버거에 의해 자동으로 로드되는 파일 목록에 추가합니다. 소스를 심볼 파일로 디컴파일 .NET 코드의 경우 이 옵션을 선택한 다음 어셈블리에 대한 소스 생성 및 포함의 지침을 따를 수 있습니다.
No Symbols Loaded/No Source Loaded 페이지를 사용합니다
디버거가 기호나 소스 파일이 없는 코드에 진입할 수 있는 여러 가지 방법이 있습니다.
- 코드를 한 단계씩 실행합니다.
- 중단점 또는 예외에서 코드를 중단합니다.
- 다른 스레드로 전환합니다.
- Call Stack 창에서 프레임을 두 번 클릭하여 스택 프레임을 변경합니다.
이 경우 디버거는 필요한 기호 또는 소스를 찾고 로드하는 데 도움이 되는 No Symbols Loaded 또는 No Source Loaded 페이지를 표시합니다.
No Symbols Loaded 문서 페이지를 사용하여 누락된 기호를 찾고 로드하려면:
검색 경로를 변경하려면 선택되지 않은 경로를 선택하거나 새 경로 또는 새 VSTS 경로를 선택하고 새 경로를 입력하거나 선택합니다. 로드를 선택하여 경로를 다시 검색하고 기호 파일이 있으면 로드합니다.
기호 옵션을 재정의하고 검색 경로를 다시 시도하려면 찾아보기를 선택하고 실행 파일 이름을< 찾습니다>. 기호 파일이 있으면 로드되거나 파일 탐색기가 열리므로 기호 파일을 수동으로 선택할 수 있습니다.
- 기호 설정 페이지를 열어 동작을 구성하려면 기호 설정 변경을 선택하거나 도구>옵션 창을 열고 모든 설정>디버깅>기호>검색 및 로드 또는 검색 위치 섹션으로 이동합니다.
- 기호 설정 페이지를 열어 동작을 구성하려면 기호 설정 변경을 선택하거나 도구>옵션 대화 상자를 열고 디버깅>기호 섹션으로 이동합니다.
(고급) 새 창에 디스어셈블리를 한 번 표시하려면 뷰 디스어셈블리를 선택하거나 옵션 대화 상자를 선택하여 원본 또는 기호 파일을 찾을 수 없을 때 항상 디스어셈블리를 표시하는 옵션을 설정합니다. 자세한 내용은 디스어셈블리 코드 보기를 참조하세요.
검색된 위치와 결과를 표시하려면 기호 로드 정보를 확장합니다.
C# 코드의 경우 No Symbols Loaded 또는 No Source Loaded 페이지에서 소스 코드를 디컴파일하도록 선택할 수도 있습니다.
디버거가 옵션 중 하나를 실행한 후 .pdb 파일을 찾고 .pdb 파일의 정보를 사용하여 소스 파일을 검색할 수 있는 경우 소스를 표시합니다. 그렇지 않으면 문제를 설명하는 No Source Loaded 페이지가 표시되고 문제를 해결할 수 있는 작업에 대한 링크가 표시됩니다.
솔루션에 소스 파일 검색 경로를 추가하려면:
디버거가 소스 파일을 검색하는 위치를 지정하고 검색에서 특정 파일을 제외할 수 있습니다.
솔루션 탐색기에서 솔루션을 선택한 다음 속성 아이콘을 선택하거나, Alt+Enter 키를 누르거나, 마우스 오른쪽 단추를 클릭하고 속성을 선택합니다.
디버그 소스 파일을 선택합니다.
소스 코드가 포함된 디렉터리에서 검색할 소스 코드 위치를 입력하거나 선택합니다. 새 라인 아이콘을 사용하여 더 많은 위치를 추가하거나, 위쪽 및 아래쪽 화살표 아이콘을 사용하여 위치를 재정렬하거나, X 아이콘을 사용하여 삭제합니다.
비고
디버거는 지정된 디렉터리만 검색합니다. 검색하려는 모든 하위 디렉토리에 대한 항목을 추가해야 합니다.
Do not look for these source files(다음 소스 파일 검색 안 함)에서 검색에서 제외할 소스 파일의 이름을 입력합니다.
확인 또는 적용을 선택합니다.