일반 디버깅 옵션
Visual Studio 디버거 옵션을 설정하려면 도구>옵션선택하고 디버깅일반 옵션 옆에 있는 상자를 선택하거나 선택 취소합니다. 도구>설정 가져오기 및 내보내기>모든 설정을 초기화하여 모든 기본 설정을 복원할 수 있습니다. 설정의 하위 집합을 다시 설정하려면 테스트하려는 변경 내용을 적용하기 전에 설정 가져오기 및 내보내기 마법사 설정을 저장한 다음, 나중에 저장된 설정을 가져옵니다.
다음 일반 옵션을 설정할 수 있습니다.
모든 중단점을 삭제하기 전에 질문: 모든 중단점 삭제 명령을 완료하기 전에 확인이 필요합니다.
한 프로세스가중단될 때 모든 프로세스를 중단합니다. 동시에 중단이 발생할 때 디버거가 연결된 모든 프로세스를 중단합니다.
예외가 AppDomain 또는 관리/네이티브 경계를 넘는 경우중단: 관리 모드 또는 혼합 모드 디버깅에서 공용 언어 런타임은 다음 조건이 만족될 경우 애플리케이션 도메인 경계 또는 관리/네이티브 경계를 넘는 예외를 잡을 수 있습니다.
네이티브 코드가 COM Interop을 사용하여 관리 코드를 호출할 때, 관리 코드가 예외를 발생시키는 경우 COM Interop 소개을 참조하세요.
애플리케이션 도메인 1에서 실행되는 관리 코드가 애플리케이션 도메인 2의 관리 코드를 호출했을 때, 도메인 2의 코드가 예외를 발생시키는 경우. 애플리케이션 도메인으로 프로그래밍을 참조하세요.
코드가 리플렉션을 사용하여 함수를 호출하고 해당 함수가 예외를 throw하는 경우 리플렉션참조하십시오.
조건 2와 3에서는 예외가 공용 언어 런타임이 아닌 mscorlib
관리 코드에 의해 잡히는 경우가 있습니다. 이 옵션은 mscorlib
에 의해 예외가 발생한 경우에는 영향을 주지 않습니다.
주소 수준 디버깅사용: 주소 수준(디스어셈블리 창, 레지스터 창 및 주소 중단점)에서 디버깅을 위한 고급 기능을 사용하도록 설정합니다.
- 사용할 수 없는 경우 디스어셈블리 표시: 원본을 사용할 수 없는 코드를 디버그할 때 디스어셈블리 창이 자동으로 표시됩니다.
중단점 필터사용: 특정 프로세스, 스레드 또는 컴퓨터에만 영향을 주도록 중단점에서 필터를 설정할 수 있습니다.
새 예외 도우미사용: 예외 도우미를 대체하는 예외 도우미를 사용하도록 설정합니다. (예외 도우미는 Visual Studio 2017부터 지원됨)
메모
관리 코드의 경우 이 옵션은 이전에 예외 도우미 사용하도록 호출되었습니다.
내 코드만사용: 디버거는 시스템 코드 및 최적화되거나 디버깅 기호가 없는 다른 코드를 무시하고 사용자 코드("내 코드")로만 표시하고 단계를 수행합니다.
- 시작 시 사용자 코드가 없는 경우 경고(관리 전용): 내 코드만 사용하도록 설정된 상태로 디버깅을 시작하면 이 옵션은 사용자 코드("내 코드")가 없는 경우 경고합니다.
.NET Framework 소스 코드 단계별 실행 활성화: 디버거가 .NET Framework 소스 코드를 단계별로 탐색할 수 있습니다. 이 옵션을 사용하도록 설정하면 내 코드만 자동으로 비활성화됩니다. .NET Framework 기호는 캐시 위치에 다운로드됩니다. 옵션 대화 상자, 범주 디버깅기호 페이지를 사용하여 캐시 위치를 변경합니다.
속성 및 연산자 단계별 실행(관리 전용): 디버거가 관리 코드에서 속성 및 연산자를 한 단계씩 실행하지 못하도록 합니다.
속성 평가 및 기타 암시적 함수 호출사용: 변수 창과 QuickWatch 대화 상자에서 속성의 자동 평가 및 암시적 함수 호출을 설정합니다.
- 변수 창의 개체에서 문자열 변환 함수 호출(C# 및 JavaScript에만 해당): 변수 창에서 개체를 평가할 때 암시적 문자열 변환 호출을 실행합니다. 결과는 형식 이름 대신 문자열로 표시됩니다. C# 코드에서 디버깅하는 동안에만 적용됩니다. 이 설정은 DebuggerDisplay 특성에 의해 재정의될 수 있습니다(DebuggerDisplay 특성 사용참조).
원본 서버 지원사용: SrcSrv(srcsrv.dll
) 프로토콜을 구현하는 원본 서버에서 원본 파일을 가져오기 위해 Visual Studio 디버거에 지시합니다. Team Foundation Server와 Windows용 디버깅 도구는 프로토콜을 구현하는 두 개의 원본 서버입니다. SrcSrv 설정에 대한 자세한 내용은 SrcSrv 설명서를 참조하세요. 또한 기호(.pdb) 및 소스 파일을 참조하세요.
중요하다
.pdb 파일을 읽으면 파일에서 임의의 코드를 실행할 수 있으므로 서버를 신뢰해야 합니다.
출력 창에 원본 서버 진단 메시지 인쇄: 원본 서버 지원을 사용하도록 설정하면 이 설정이 진단 표시를 켭니다.
부분 신뢰 어셈블리에 대한 원본 서버 허용(관리 전용): 원본 서버 지원을 사용하도록 설정하면 이 설정은 부분 신뢰 어셈블리에 대한 원본을 검색하지 않는 기본 동작을 재정의합니다.
항상메시지를 표시하지 않고 신뢰할 수 없는 원본 서버 명령을 실행합니다. 원본 서버 지원이 사용하도록 설정된 경우 이 설정은 신뢰할 수 없는 명령을 실행할 때 표시되는 기본 동작을 재정의합니다.
소스 링크 지원사용: 소스 링크 정보가 포함된 .pdb 파일에 대한 원본 파일을 다운로드하도록 Visual Studio 디버거에 지시합니다. 원본 링크에 대한 자세한 내용은 원본 링크 사양참조하세요.
중요하다
원본 링크는 http 또는 https를 사용하여 파일을 다운로드하므로 .pdb 파일을 신뢰해야 합니다.
- 모든 원본 링크 요청에 대한 Git 자격 증명 관리자 인증으로 대체: 원본 링크 지원이 활성화되고 원본 링크 요청이 인증에 실패하면 Visual Studio에서 Git 자격 증명 관리자를 호출합니다.
중단점 및 현재 문(C++에만 해당)전체 소스 줄 강조 표시: 디버거가 중단점 또는 현재 문을 강조 표시하면 전체 줄이 강조 표시됩니다.
원본 파일이 원래 버전정확히 일치하도록 요구: 디버깅할 실행 파일을 빌드하는 데 사용되는 소스 코드의 버전과 일치하는지 확인하도록 디버거에 지시합니다. 버전이 일치하지 않으면 일치하는 원본을 찾으라는 메시지가 표시됩니다. 일치하는 소스를 찾을 수 없는 경우 디버깅하는 동안 소스 코드가 표시되지 않습니다.
출력 창의 모든 텍스트를 즉시 창리디렉션합니다: 보통 출력 창에 표시되는 디버거 메시지를 대신 즉시 창으로 보냅니다.
변수 창개체의 원시 구조 표시: 모든 개체 구조 뷰 사용자 지정을 해제합니다. 사용자 지정 보기에 대한 자세한 내용은 관리되는 개체의 사용자 지정 보기 만들기를 참조하세요.
모듈 로드 시 JIT 최적화 표시 안 함(관리 전용): 모듈이 로드되고 디버거가 연결된 동안 JIT가 컴파일될 때 관리 코드의 JIT 최적화를 사용하지 않도록 설정합니다. 최적화를 사용하지 않도록 설정하면 성능이 저하되더라도 일부 문제를 쉽게 디버그할 수 있습니다. 내 코드만 사용하는 경우 JIT 최적화를 표시하지 않으면 사용자 코드가 아닌 코드가 사용자 코드("내 코드")로 표시될 수 있습니다. 자세한 내용은 JIT 최적화 및 디버깅참조하세요.
ASP.NET(Chrome, Microsoft Edge 및 IE)JavaScript 디버깅 사용: ASP.NET 앱에 스크립트 디버거를 사용하도록 설정합니다. Chrome에서 처음 사용할 때는 브라우저에 로그인하여 설치한 Chrome 확장을 사용하도록 설정해야 할 수 있습니다. 레거시 동작으로 되돌리려면 이 옵션을 사용하지 않도록 설정합니다.
적용 가능한 대상에서 JavaScript를 디버깅하기 위해 다중 대상 JavaScript 디버거를 사용하여 사용하도록 설정(디버깅 다시 시작 필요) 브라우저와 백 엔드에 동시에 연결을 사용하도록 설정하여 편집기에서 바로 클라이언트 및 서버에서 실행되는 코드를 디버그할 수 있습니다.
dll 내보내기 로드(네이티브 전용): dll 내보내기 테이블을 로드합니다. dll 내보내기 테이블의 기호 정보는 Windows 메시지, Windows 프로시저(WindowProcs), COM 개체 또는 마샬링 또는 기호가 없는 dll을 사용하는 경우에 유용할 수 있습니다. dll 내보내기 정보를 읽으면 약간의 오버헤드가 수반됩니다. 따라서 이 기능은 기본적으로 꺼져 있습니다.
dll의 내보내기 테이블에서 사용할 수 있는 기호를 보려면 dumpbin /exports
사용합니다. 기호는 모든 32비트 시스템 dll에 사용할 수 있습니다.
dumpbin /exports
출력을 읽으면 영숫자가 아닌 문자를 포함하여 정확한 함수 이름을 볼 수 있습니다. 이는 함수에 중단점을 설정하는 데 유용합니다. dll 내보내기 테이블의 함수 이름은 디버거의 다른 곳에서 잘린 것처럼 보일 수 있습니다. 호출은 현재 함수(가장 깊이 중첩됨)가 맨 위에 있는 호출 순서로 나열됩니다. 자세한 내용은 덤프빈 /내보내기참조하세요.
병렬 스택 다이어그램 상향식표시: 병렬 스택 창에 스택이 표시되는 방향을 제어합니다.
기록된 데이터가값을 변경하지 않은 경우 GPU 메모리 액세스 예외 무시: 데이터가 변경되지 않은 경우 디버깅 중에 검색된 경합 상태를 무시합니다. 자세한 내용은 GPU 코드 디버깅을 참조하세요.
관리되는 호환성 모드사용: 기본 디버깅 엔진을 레거시 버전으로 바꿔 이러한 시나리오를 사용하도록 설정합니다.
자체 식 계산기(C++/CLI 포함)를 제공하는 C#, Visual Basic 또는 F# 이외의 .NET 언어를 사용하고 있습니다.
혼합 모드 디버깅 중에 C++ 프로젝트에 대해 편집 및 계속을 사용하도록 설정하려고 합니다.
메모
관리되는 호환성 모드를 선택하면 기본 디버깅 엔진에서만 구현되는 일부 기능이 비활성화됩니다. 레거시 디버깅 엔진은 Visual Studio 2012에서 대체되었습니다.
잠재적으로 안전하지 않은 프로세스에 대해 사용자 지정 디버거 시각화 도우미를 사용할 때 경고(관리 전용): 안전하지 않은 코드를 실행할 수 있으므로 디버그된 프로세스에서 코드를 실행하는 사용자 지정 디버거 시각화 도우미를 사용할 때 Visual Studio에서 경고합니다.
Windows 디버그 힙 할당자 사용(네이티브 전용): Windows 디버그 힙을 사용하여 힙 진단을 개선할 수 있습니다. 이 옵션을 사용하도록 설정하면 디버깅 성능에 영향을 줍니다.
XAML용 UI 디버깅 도구 사용: 지원되는 프로젝트 형식인 디버깅(F5)을 시작하면 라이브 시각적 트리 및 라이브 속성 탐색 창이 표시됩니다. 자세한 내용은 디버깅하는 동안 XAML 속성 검사참조하세요.
Live Visual Tree선택한 요소 미리 보기: 컨텍스트가 선택된 XAML 요소도 라이브 시각적 트리 창에서 선택됩니다.
애플리케이션런타임 도구 표시: 디버그 중인 XAML 애플리케이션의 주 창에 있는 도구 모음에 라이브 시각적 트리 명령을 표시합니다.
XAML 핫 리로드사용: 앱이 실행되는 동안 XAML 코드를 사용하여 XAML 핫 리로드 기능을 사용할 수 있습니다. (이 기능은 이전에 "XAML 편집 및 계속"이라고 함)
XAML 사용자 코드만 활성화: Visual Studio 2019 버전 16.4부터 Live Visual Tree는 기본적으로 사용자 코드로 분류된 XAML만 표시합니다. 이 옵션을 사용하지 않도록 설정하면 생성된 모든 XAML 코드가 도구에 표시됩니다.
Visual Studio 2019 버전 16.4부터 요소를 선택한 선택 모드를 해제합니다. 요소를 선택하면 앱 내 도구 모음 요소 선택기 단추(선택사용)가 꺼집니다. 이 옵션을 사용하지 않도록 설정하면 앱 내 도구 모음 단추를 다시 클릭할 때까지 요소 선택 영역이 계속 유지됩니다.
문서 저장 시 XAML 핫 리로드 적용 Visual Studio 2019 버전 16.6부터 문서를 저장할 때 XAML 핫 리로드가 적용됩니다.
디버깅하는 동안 진단 도구 사용: 디버깅하는 동안 진단 도구 창이 나타납니다.
디버깅하는 동안 경과된 시간 PerfTip 표시: 코드 창에는 디버깅할 때 지정된 메서드 호출의 경과된 시간이 표시됩니다.
편집 및 계속 기능사용: 디버그 중 편집 및 계속 기능을 활성화합니다.
네이티브 편집 및 계속: 네이티브 C++ 코드를 디버깅하는 동안 편집 및 계속 기능을 사용할 수 있습니다. 자세한 내용은 편집하며 계속하기(C++)참조하세요.
계속 적용 (네이티브 전용): 중단 상태에서 프로세스를 계속 진행할 때 Visual Studio는 미해결 코드 변경 내용을 자동으로 컴파일하고 적용합니다. 선택하지 않으면 디버그 메뉴의 코드 변경 내용 적용 항목을 사용하여 변경 내용을 적용하도록 선택할 수 있습니다.
부실 코드에 대한 경고(네이티브 전용): 부실 코드에 대한 경고를 가져옵니다.
디버깅하는 동안 편집기에서 실행 단추 표시: 이 옵션을 선택하면 디버깅하는 동안 실행 단추가 표시됩니다.
디버깅이 중지되면자동으로 콘솔을 닫습니다. 디버깅 세션이 끝날 때 Visual Studio에 콘솔을 닫으라고 지시합니다.
빠른 식 평가 사용(관리 전용): 디버거가 간단한 속성 및 메서드의 실행을 시뮬레이션하여 더 빠른 평가를 시도할 수 있도록 합니다.
외부 프로세스에서 디버그 기호 로드(네이티브 전용) 디버깅하는 동안 이 메모리 최적화 사용하도록 설정합니다.
디버거에서 중단될 때 Visual Studio를 전경으로 표시 디버거에서 일시 중지할 때 Visual Studio를 전경으로 전환합니다.
확장된 데이터 팁을 클릭할 때까지 열린 상태로 유지 이 옵션을 선택하면, 확장된 데이터 팁은 다른 곳을 클릭할 때까지 열린 상태로 유지됩니다.
이전 버전의 Visual Studio에서 사용할 수 있는 옵션
이전 버전의 Visual Studio를 사용하는 경우 몇 가지 추가 옵션이 있을 수 있습니다.
UWP JavaScript 앱용 Edge 개발자 도구 사용(실험적): Microsoft Edge에서 UWP JavaScript 앱용 개발자 도구를 사용하도록 설정합니다.
ASP.NET레거시 Chrome JavaScript 디버거 사용: ASP.NET 앱에 레거시 Chrome JavaScript 스크립트 디버거를 사용하도록 설정합니다. Chrome에서 처음 사용할 때는 브라우저에 로그인하여 설치한 Chrome 확장을 사용하도록 설정해야 할 수 있습니다.
예외 도우미사용: 관리 코드의 경우 예외 도우미를 사용하도록 설정합니다. Visual Studio 2017부터 예외 도우미가 예외 도우미를 대체했습니다.
처리되지 않은 예외에서 호출 스택 해제: 호출 스택 창이 처리되지 않은 예외가 발생하기 전에 호출 스택을 지점으로 롤백하도록 합니다.
관리자 권한으로 Visual Studio를 실행할 때 실험적인 방법으로 Chrome JavaScript 디버깅을 시작합니다. JavaScript 디버깅 중에 Chrome을 시작하는 새로운 방법을 시도하도록 Visual Studio에 지시합니다.
시작 시 기호가 없는 경우 경고(네이티브 전용): 디버거에 기호 정보가 없는 프로그램을 디버그할 때 경고 대화 상자를 표시합니다.
시작스크립트 디버깅을 사용하지 않도록 설정하면 경고: 스크립트 디버깅을 사용하지 않도록 설정하여 디버거를 시작할 때 경고 대화 상자를 표시합니다.
관리 호환 모드사용: 이 옵션을 선택하면 디버거는 C++/CLI 코드를 디버그할 때 필요한 Visual Studio 2010 관리 디버거를 사용합니다.
네이티브 호환 모드사용: 이 옵션을 선택하면 디버거는 새 네이티브 디버거 대신 Visual Studio 2010 네이티브 디버거를 사용합니다.
- 새 디버깅 엔진이 .NET C++ 식 평가를 지원하지 않으므로 .NET C++ 코드를 디버깅할 때 이 옵션을 사용합니다. 그러나 네이티브 호환성 모드를 사용하도록 설정하면 현재 디버거 구현에 따라 작동하는 많은 기능이 비활성화됩니다. 예를 들어 레거시 엔진에는 Visual Studio 2015 프로젝트의
std::string
같은 기본 제공 형식에 대한 많은 시각화 도우미가 없습니다. 이러한 경우 최적의 디버깅 환경을 위해 Visual Studio 2013 프로젝트를 사용합니다.
참조
- Visual Studio 디버깅
- 먼저 디버거 살펴보기