다음을 통해 공유


일반 디버깅 옵션

Visual Studio 디버거 옵션을 설정하려면 도구>옵션을 선택하고 디버깅 아래에서 일반 옵션 옆에 있는 확인란을 선택하거나 선택 취소합니다. 도구>설정 가져오기 및 내보내기>모든 설정을 초기화하여 모든 기본 설정을 복원할 수 있습니다. 설정의 하위 집합을 다시 설정하려면 테스트하려는 변경 내용을 적용하기 전에 설정 가져오기 및 내보내기 마법사 설정을 저장한 다음, 나중에 저장된 설정을 가져옵니다.

다음 일반 옵션을 설정할 수 있습니다.

모든 중단점을 삭제하기 전에 질문: 모든 중단점 삭제 명령을 완료하기 전에 확인이 필요합니다.

한 프로세스가중단될 때 모든 프로세스를 중단합니다. 동시에 중단이 발생할 때 디버거가 연결된 모든 프로세스를 중단합니다.

예외가 AppDomain 또는 관리/네이티브 경계를 넘으면 중단: 관리 모드 또는 혼합 모드 디버깅에서 공용 언어 런타임은 다음 세 가지 조건이 true인 경우 애플리케이션 도메인 경계 또는 관리/네이티브 경계를 초과하는 예외를 catch할 수 있습니다.

  • 조건 1: 네이티브 코드가 COM Interop을 사용하여 관리 코드를 호출하고 관리 코드가 예외를 throw하는 경우 COM Interop 소개을 참조하세요.

  • 조건 2: 애플리케이션 도메인 1에서 실행되는 관리 코드가 애플리케이션 도메인 2에서 관리 코드를 호출하고 애플리케이션 도메인 2의 코드가 예외를 throw하는 경우 애플리케이션 도메인으로 프로그래밍을 참조하세요.

  • 조건 3: 코드가 리플렉션을 사용하여 함수를 호출하고 해당 함수가 예외를 throw하는 경우 리플렉션참조하십시오.

  • 조건 2와 3의 경우, 예외는 공용 언어 런타임이 아니라 mscorlib의 관리 코드에 의해 잡히는 경우가 있습니다. 이 옵션은 mscorlib에서 catch된 예외의 중단에 영향을 미치지 않습니다.

주소 수준 디버깅사용: 주소 수준(디스어셈블리 창, 레지스터 창 및 주소 중단점)에서 디버깅을 위한 고급 기능을 사용하도록 설정합니다.

  • 사용할 수 없는 경우 디스어셈블리 표시: 원본을 사용할 수 없는 코드를 디버그할 때 디스어셈블리 창이 자동으로 표시됩니다.

중단점 필터 사용: 특정 프로세스, 스레드 또는 컴퓨터에만 영향을 주도록 중단점에서 필터를 설정할 수 있습니다.

새 예외 도우미사용: 예외 도우미를 대체하는 예외 도우미를 사용하도록 설정합니다. (예외 도우미는 Visual Studio 2017부터 지원됨)

메모

관리 코드의 경우, 본 옵션은 이전에 예외 도우미 활성화로 불렸습니다.

내 코드만 사용: 디버거는 최적화되었거나 디버깅 기호가 없는 시스템 코드 및 기타 코드를 무시하고 사용자 코드("내 코드")로만 표시하고 단계를 수행합니다.

  • 시작 시 사용자 코드가 없는 경우 경고(관리 전용): 디버깅이 내 코드만 사용하도록 설정된 상태로 시작하는 경우 이 옵션은 사용자 코드("내 코드")가 없는 경우 경고합니다.

.NET Framework 소스 코드 단계별 실행 활성화: 디버거가 .NET Framework 소스 코드를 단계별로 탐색할 수 있습니다. 이 옵션을 사용하도록 설정하면 내 코드만 자동으로 비활성화됩니다. .NET Framework 기호는 캐시 위치에 다운로드됩니다. 이 디렉터리 옵션의 캐시 기호를 사용하여 >>검색 위치 섹션의 캐시 위치를 변경할 수 있습니다.

.NET Framework 소스 코드 단계별 실행 활성화: 디버거가 .NET Framework 소스 코드를 단계별로 탐색할 수 있습니다. 이 옵션을 사용하도록 설정하면 내 코드만 자동으로 비활성화됩니다. .NET Framework 기호는 캐시 위치에 다운로드됩니다. 이 디렉터리 옵션의 캐시 기호를 사용하여 >기호 섹션의 캐시 위치를 변경할 수 있습니다.

가능한 경우 디버그된 함수를 자동으로 디옵티마이즈 (.Net 8+, C++ 동적 디버깅 지원): 선택하면 보다 포괄적인 디버깅 환경을 위해 디버그된 함수를 디옵티마이즈합니다.

모듈 로드 시 JIT 최적화 표시 안 함(관리 전용): 모듈이 로드되고 디버거가 연결된 동안 JIT가 컴파일될 때 관리 코드의 JIT 최적화를 사용하지 않도록 설정합니다. 최적화를 사용하지 않도록 설정하면 성능이 저하되더라도 일부 문제를 더 쉽게 디버그할 수 있습니다. 내 코드만 사용 중인 경우, JIT 최적화를 억제하면 사용자 코드가 아닌 코드가 사용자 코드("내 코드")로 나타날 수 있습니다. 자세한 내용은 JIT 최적화 및 디버깅참조하세요.

미리 컴파일된 이미지 사용 구성(관리 전용): 이 링크를 선택하면 Visual Studio 디버거 옵션 대화 상자가 열립니다. 이 옵션을 사용하려면 모듈 로드 확인란에서 미리 컴파일된 이미지 사용 안 함을 선택하고 확인을 선택합니다. 이 옵션을 선택하면 NGEN 또는 RDR 미리 컴파일된 이미지를 로드하는 기능을 비활성화합니다.

모듈 로드 시 미리 컴파일된 이미지 사용 방지(관리 전용, 다시 시작 시 다시 설정): 선택하면 NGEN 로드 또는 로드 준비(RDR) 미리 컴파일된 이미지를 사용하지 않도록 설정합니다.

Just-In-Time 디버깅 구성: 이 링크를 선택하면 Visual Studio 디버거 옵션 대화 상자가 열립니다. 이 옵션을 사용하려면 이러한 유형의 코드에 대해 Just-In-Time 디버깅 사용 확인란을 선택합니다. 한 개 또는 그 이상의 코드 형식(네이티브관리 코드 형식(.NET Framework))을 선택한 후 확인을 누릅니다. 이 옵션을 사용하면 선택한 코드 형식에 대해 Just-In-Time 디버깅을 사용할 수 있습니다.

속성 및 연산자 단계별 실행(관리 전용): 디버거가 관리 코드에서 속성 및 연산자를 한 단계씩 실행하지 못하도록 합니다.

속성 평가 및 기타 암시적 함수 호출사용: 변수 창과 QuickWatch 대화 상자에서 속성의 자동 평가 및 암시적 함수 호출을 설정합니다.

  • 변수 창의 개체에서 문자열 변환 함수 호출: 변수 창에서 개체를 평가할 때 암시적 문자열 변환 호출을 실행합니다. 결과는 형식 이름 대신 문자열로 표시됩니다. C# 코드에서 디버깅하는 동안에만 적용됩니다. 이 설정은 DebuggerDisplay 특성으로 재정의할 수 있습니다( DebuggerDisplay 특성 사용 참조).

원본 서버 지원사용: SrcSrv(srcsrv.dll) 프로토콜을 구현하는 원본 서버에서 원본 파일을 가져오기 위해 Visual Studio 디버거에 지시합니다. Team Foundation Server와 Windows용 디버깅 도구는 프로토콜을 구현하는 두 개의 원본 서버입니다. SrcSrv 설정에 대한 자세한 내용은 SrcSrv 설명서를 참조하세요. 또한 기호(.pdb) 및 소스 파일을 참조하세요.

중요하다

.pdb 파일을 읽으면 파일에서 임의의 코드를 실행할 수 있으므로 서버를 신뢰해야 합니다.

  • 출력 창에 원본 서버 진단 메시지 인쇄: 원본 서버 지원을 사용하도록 설정하면 이 설정이 진단 표시를 켭니다.

  • 부분 신뢰 어셈블리에 대한 원본 서버 허용(관리 전용): 원본 서버 지원을 사용하도록 설정하면 이 설정은 부분 신뢰 어셈블리에 대한 원본을 검색하지 않는 기본 동작을 재정의합니다.

  • 항상메시지를 표시하지 않고 신뢰할 수 없는 원본 서버 명령을 실행합니다. 원본 서버 지원이 사용하도록 설정된 경우 이 설정은 신뢰할 수 없는 명령을 실행할 때 표시되는 기본 동작을 재정의합니다.

소스 링크 지원사용: 소스 링크 정보가 포함된 .pdb 파일에 대한 원본 파일을 다운로드하도록 Visual Studio 디버거에 지시합니다. 원본 링크에 대한 자세한 내용은 원본 링크 사양참조하세요.

중요하다

Source Link는 http 또는 https를 사용하여 파일을 다운로드하므로 .pdb 파일을 신뢰해야 합니다.

  • 모든 원본 링크 요청에 대한 Git 자격 증명 관리자 인증으로 대체: 원본 링크 지원이 활성화되고 원본 링크 요청이 인증에 실패하면 Visual Studio에서 Git 자격 증명 관리자를 호출합니다.

중단점 및 현재 문(C++에만 해당)전체 소스 줄 강조 표시: 디버거가 중단점 또는 현재 문을 강조 표시하면 전체 줄이 강조 표시됩니다.

원본 파일이 원래 버전과 정확히 일치하도록 요구합니다. 디버깅 중인 실행 파일을 빌드하는 데 사용되는 소스 코드 버전과 원본 파일이 일치하는지 확인하도록 디버거에 지시합니다. 버전이 일치하지 않으면 일치하는 원본을 찾으라는 메시지가 표시됩니다. 일치하는 원본을 찾을 수 없으면 디버깅하는 동안 소스 코드가 표시되지 않습니다.

출력 창의 모든 텍스트를 즉시 창리디렉션합니다: 보통 출력 창에 표시되는 디버거 메시지를 대신 즉시 창으로 보냅니다.

변수 창개체의 원시 구조 표시: 모든 개체 구조 뷰 사용자 지정을 해제합니다. 사용자 지정 보기에 대한 자세한 내용은 관리되는 개체의 사용자 지정 보기 만들기를 참조하세요.

ASP.NET JavaScript 디버깅 사용(Chrome 및 Edge): ASP.NET 앱에 스크립트 디버거를 사용하도록 설정합니다. Chrome에서 처음 사용할 때는 브라우저에 로그인하여 설치한 Chrome 확장을 사용하도록 설정해야 할 수 있습니다. 레거시 동작으로 되돌리려면 이 옵션을 사용하지 않도록 설정합니다.

ASP.NET(Chrome, Edge 및 IE)에 JavaScript 디버깅 사용: ASP.NET 앱에 스크립트 디버거를 사용하도록 설정합니다. Chrome에서 처음 사용할 때는 브라우저에 로그인하여 설치한 Chrome 확장을 사용하도록 설정해야 할 수 있습니다. 레거시 동작으로 되돌리려면 이 옵션을 사용하지 않도록 설정합니다.

dll 내보내기 로드(네이티브 전용): dll 내보내기 테이블을 로드합니다. dll 내보내기 테이블의 기호 정보는 Windows 메시지, Windows 프로시저(WindowProcs), COM 개체 또는 마샬링 또는 기호가 없는 dll을 사용하는 경우에 유용할 수 있습니다. dll 내보내기 정보를 읽으면 약간의 오버헤드가 수반됩니다. 따라서 이 기능은 기본적으로 꺼져 있습니다.

  • dll의 내보내기 테이블에서 사용할 수 있는 기호를 보려면 dumpbin /exports사용합니다. 기호는 모든 32비트 시스템 dll에 사용할 수 있습니다. 출력을 dumpbin /exports 읽으면 숫자가 아닌 문자를 포함하여 정확한 함수 이름을 볼 수 있습니다. 이는 함수에 중단점을 설정하는 데 유용합니다. dll 내보내기 테이블의 함수 이름은 디버거의 다른 곳에서 잘린 것처럼 보일 수 있습니다. 호출은 현재 함수(가장 깊이 중첩됨)가 맨 위에 있는 호출 순서로 나열됩니다. 자세한 내용은 덤프빈 /내보내기참조하세요.

기록된 데이터가값을 변경하지 않은 경우 GPU 메모리 액세스 예외 무시: 데이터가 변경되지 않은 경우 디버깅 중에 검색된 경합 상태를 무시합니다. 자세한 내용은 GPU 코드 디버깅을 참조하세요.

잠재적으로 안전하지 않은 프로세스에 대해 사용자 지정 디버거 시각화 도우미를 사용할 때 경고(관리 전용): 안전하지 않은 코드를 실행할 수 있으므로 디버그된 프로세스에서 코드를 실행하는 사용자 지정 디버거 시각화 도우미를 사용할 때 Visual Studio에서 경고합니다.

Windows 디버그 힙 할당자 사용(네이티브 전용): Windows 디버그 힙을 사용하여 힙 진단을 개선할 수 있습니다. 이 옵션을 사용하도록 설정하면 디버깅 성능에 영향을 줍니다.

디버깅하는 동안 진단 도구 사용: 디버깅하는 동안 진단 도구 창이 나타납니다.

디버깅하는 동안 경과된 시간 PerfTip 표시: 코드 창에는 디버깅할 때 지정된 메서드 호출의 경과된 시간이 표시됩니다.

핫 다시 로드 사용: 디버깅하는 동안 핫 다시 로드 기능을 사용하도록 설정합니다.

  • 계속 시 변경 내용 자동 적용(네이티브 전용): Visual Studio는 중단 상태에서 프로세스를 계속할 때 수행한 미해결 코드 변경 내용을 자동으로 컴파일하고 적용합니다. 선택하지 않으면 디버그 메뉴의 코드 변경 내용 적용 항목을 사용하여 변경 내용을 적용하도록 선택할 수 있습니다.

  • 부실 코드에 대한 경고(네이티브 전용): 부실 코드에 대한 경고를 가져옵니다.

디버깅하는 동안 실행 단추 표시: 이 옵션을 선택하면 디버깅하는 동안 실행 단추 가 표시됩니다.

디버깅이 중지되면자동으로 콘솔을 닫습니다. 디버깅 세션이 끝날 때 Visual Studio에 콘솔을 닫으라고 지시합니다.

빠른 식 평가 사용(관리 전용): 디버거가 간단한 속성 및 메서드의 실행을 시뮬레이션하여 더 빠른 평가를 시도할 수 있도록 합니다.

외부 프로세스에서 디버그 기호 로드(네이티브 전용): 디버깅하는 동안 이 메모리 최적화 를 사용하도록 설정합니다.

디버거에서 중단될 때 Visual Studio를 포그라운드로 가져오기: 디버거에서 일시 중지할 때 Visual Studio를 포그라운드로 전환합니다.

확장된 데이터 팁은 다른 곳을 클릭할 때까지 열린 상태로 유지됩니다. 이 옵션을 선택하면, 확장된 데이터 팁은 다른 곳을 클릭할 때까지 확장된 상태로 계속 유지됩니다.

솔루션 탐색기에서 외부 원본 노드 사용: 선택하면 외부 원본 노드 아래에 디컴퓨트된 코드가 표시됩니다.

필요에 따라 소스 코드로 자동 디컴파일(관리 코드에 한함): 이 옵션을 선택하면 외부 .NET 코드를 단계별로 실행할 때 자동으로 디컴파일합니다.

현재 문과 중단점 있는 문 강조: 디버거가 중단점이나 현재 문을 강조 표시할 때는 전체 줄이 강조 표시됩니다.

디버깅하는 동안 편집기에서 변수 값을 인라인으로 표시합니다. 디버거의 강조 표시된 문에 변수 값을 표시합니다.

  • 인라인으로 반환 값 표시: 디버거에서 강조 표시된 문의 반환 값을 표시합니다.

  • 함수 인수 값을 인라인으로 표시: 디버거의 강조 표시된 문에 함수 인수 값을 표시합니다.

  • 현재 줄 식 값을 인라인으로 표시: 디버거에서 현재 줄 내의 식 값을 표시합니다.

이전 버전의 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에 지시합니다.

시작 시 기호가 없는 경우 경고(네이티브 전용): 디버거에 기호 정보가 없는 프로그램을 디버그할 때 경고 대화 상자를 표시합니다.

시작스크립트 디버깅을 사용하지 않도록 설정하면 경고: 스크립트 디버깅을 사용하지 않도록 설정하여 디버거를 시작할 때 경고 대화 상자를 표시합니다.

참조