다음을 통해 공유


옵션 대화 상자, 디버깅, 일반

일반 페이지에 액세스하려면 도구 메뉴를 열고 옵션을 선택합니다. 옵션 대화 상자에서 디버깅 노드를 확장하고 일반을 선택합니다. 이 페이지에서는 다음과 같은 일반 디버깅 옵션을 설정할 수 있습니다.

  • 모든 중단점을 삭제하기 전에 확인
    모든 중단점 삭제 명령을 완료하기 전에 사용자 확인을 요청하는 메시지를 표시합니다.

  • 한 프로세스가 중단될 때 모든 프로세스 중단
    중단이 발생하면 디버거가 연결되어 있는 모든 프로세스를 동시에 중단합니다.

  • 예외가 AppDomain 또는 관리/네이티브 경계를 넘어서면 중단
    관리 또는 혼합 모드 디버깅에서 다음 조건이 충족되는 경우 공용 언어 런타임은 응용 프로그램 도메인 경계나 관리/네이티브 경계를 넘어서는 예외를 catch할 수 있습니다.

    1) 네이티브 코드가 COM Interop를 사용하여 관리 코드를 호출하고 관리 코드가 예외를 throw하는 경우. COM Interop 소개(Visual Basic)을 참조하십시오.

    2) 응용 프로그램 도메인 A에서 실행되는 관리 코드가 응용 프로그램 도메인 B의 관리 코드를 호출하고 응용 프로그램 도메인 B의 코드가 예외를 throw하는 경우. 응용 프로그램 도메인으로 프로그래밍을 참조하십시오.

    3) 코드가 리플렉션을 사용하여 함수를 호출하고 이 함수가 예외를 throw하는 경우. .NET Framework의 리플렉션을 참조하십시오.

    2)와 3)의 경우 예외는 때때로 공용 언어 런타임 대신 mscorlib의 관리 코드를 통해 catch될 수 있습니다. 이 옵션은 mscorlib를 통해 catch된 예외에서의 중단에 영향을 미치지 않습니다.

  • 주소 수준 디버깅 사용
    주소 수준(디스어셈블리 창, 레지스터 창 및 주소 중단점)에서 디버깅을 위한 고급 기능을 활성화합니다.

  • 소스를 사용할 수 없을 경우 디스어셈블리 표시
    소스를 사용할 수 없는 코드를 디버깅하려고 할 때 자동으로 디스어셈블리 창을 표시합니다.

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

  • 예외 도우미 사용
    관리 코드에만 해당됩니다. 이 옵션을 선택하면 관리되는 예외가 발생할 때 이전 예외 대화 상자 대신 새 예외 도우미 대화 상자가 열립니다. 예외 도우미에서는 예외에 대한 보다 자세한 설명과 향상된 도움말을 제공합니다. 예외 도우미을 참조하십시오.

  • 처리되지 않은 예외에 대한 호출 스택 해제
    호출 스택 창에서 호출 스택을 처리되지 않은 예외가 발생하기 전 시점으로 롤백합니다.

  • 내 코드만 사용
    이 기능을 활성화하는 경우 디버거는 시스템 코드 및 최적화되었거나 디버깅 기호가 없는 다른 코드를 무시하고 사용자 코드("내 코드")만 표시하고 한 단계씩 실행합니다.

  • 변수 창에 사용자가 작성하지 않은 개체의 모든 멤버 표시(Visual Basic 전용)
    "내 코드"가 아닌 사용자가 작성하지 않은 코드에 있는 개체의 public이 아닌 멤버를 표시하도록 설정합니다.

  • 시작할 때 사용자 코드가 없으면 경고
    내 코드만 옵션을 활성화하고 디버깅을 시작하는 경우 사용자 코드("내 코드")가 없으면 경고 메시지가 나타납니다.

  • .NET Framework 소스 단계별 실행 사용
    디버거에서 .NET Framework 소스를 한 단계씩 실행할 수 있도록 허용합니다. 이 옵션을 사용하면 자동으로 "내 코드만" 기능이 사용되지 않습니다. .NET Framework 기호는 캐시 위치로 다운로드됩니다. 옵션 대화 상자에 있는 디버깅 범주의 기호 페이지에서 캐시 위치를 변경할 수 있습니다.

  • 속성 및 연산자 건너뛰기(관리 전용)
    디버거가 관리 코드에서 속성 및 연산자를 한 단계씩 실행할 수 없도록 설정합니다.

  • 속성 확인 및 기타 암시적 함수 호출 사용
    변수 창과 간략한 조사식 대화 상자에서 속성 자동 확인 및 암시적 함수 호출을 설정합니다.

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

  • 소스 서버 지원 사용
    SrcSrv(srcsrv.dll) 프로토콜을 구현하는 소스 서버로부터 소스 파일을 가져오도록 Visual Studio 디버거에 지시합니다. Team Foundation Server와 Debugging Tools for Windows는 프로토콜을 구현하는 두 가지 소스 서버입니다. SrcSrv 설치에 대한 자세한 내용은 Debugging Tools for Windows 설명서를 참조하십시오. 또한 Visual Studio 디버거에서 기호 파일(.pdb) 및 원본 파일 지정을 참조하십시오.

    보안 정보보안 정보

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

  • 소스 서버 진단 메시지를 출력 창에 표시
    소스 서버 지원이 활성화된 경우 이 설정은 진단 표시를 설정합니다.

  • 부분 신뢰 어셈블리에 대해 소스 서버 허용(관리 전용)
    소스 서버 지원이 활성화된 경우 이 설정은 부분 신뢰 어셈블리의 소스를 검색하지 않는 기본 동작을 재정의합니다.

  • 중단점과 현재 문의 전체 줄 강조 표시
    디버거가 중단점이나 현재 문을 강조 표시할 때 전체 줄을 강조 표시합니다.

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

  • 출력 창의 모든 텍스트를 [직접 실행] 창으로 리디렉션
    일반적으로 출력 창에 표시되는 모든 디버거 메시지를 직접 실행 창으로 보냅니다.

  • 변수 창에서 개체의 원시 구조체 표시
    모든 개체 구조체 뷰 사용자 지정을 해제합니다. 뷰 사용자 지정에 대한 자세한 내용은 사용자 지정 데이터 형식 표시를 참조하십시오.

  • 모듈을 로드할 때 JIT 최적화 기능 사용 안 함(관리 전용)
    디버거가 연결되어 있는 동안 모듈이 로드되고 JIT가 컴파일될 때 관리 코드의 JIT 최적화를 해제합니다. 최적화를 해제하면 성능이 저하될 수 있지만 일부 문제를 보다 쉽게 디버깅할 수 있습니다. 내 코드만 기능을 사용하는 경우 JIT 최적화를 해제하면 사용자가 작성하지 않은 코드가 사용자 코드("내 코드")로 표시될 수 있습니다.

  • 시작할 때 기호가 없으면 경고(네이티브 전용)
    이 옵션을 선택하면 디버거에 기호 정보가 없는 프로그램을 디버깅하려고 할 때 경고 대화 상자가 표시됩니다. No Symbolic Information Dialog Box을 참조하십시오.

  • 시작할 때 스크립트 디버깅을 사용할 수 없으면 경고
    이 옵션을 선택하면 스크립트 디버깅을 사용하지 않고 디버거를 시작할 때 경고 대화 상자가 표시됩니다.

  • DLL 내보내기 로드
    이 옵션을 선택하면 DLL 내보내기 테이블이 로드됩니다. Windows 메시지, Windows 프로시저(WindowProcs), COM 개체, 마샬링 또는 기호가 없는 DLL을 사용하여 작업하는 경우 DLL 내보내기 테이블의 기호 정보가 유용할 수 있지만, DLL 내보내기 정보를 읽으면 오버헤드가 발생합니다. 따라서 이 기능은 기본적으로 해제되어 있습니다.

    DLL의 내보내기 테이블에서 사용할 수 있는 기호를 확인하려면 dumpbin /exports를 사용하십시오. 모든 32비트 시스템 DLL에 기호를 사용할 수 있습니다. dumpbin /exports 출력을 읽으면 영숫자가 아닌 문자를 포함하여 정확한 함수 이름을 확인할 수 있습니다. 이 방법은 함수에 중단점을 설정하는 데 유용합니다. DLL 내보내기 테이블에 있는 함수 이름은 디버거에서 일부가 잘린 상태로 나타날 수 있습니다. 호출은 현재 함수(가장 안쪽에 중첩된)가 맨 위에 표시되어 호출한 순서로 나열됩니다. 자세한 내용은 dumpbin /exports를 참조하십시오.

  • 병렬 스택 다이어그램 거꾸로 표시
    병렬 스택 창에 스택이 표시되는 방향을 제어합니다.

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

  • 관리되는 호환성 모드 사용
    다음과 같은 시나리오를 사용할 수 있도록 기본 디버깅 엔진을 레거시 버전으로 바꿉니다.

    • 고유의 식 계산기를 제공하는 C#, VB 또는 F# 이외의 .NET Framework 언어를 사용하는 경우(C++/CLI 포함)

    • 혼합 모드 디버깅 중 C++ 프로젝트에 EnC(편집하며 계속하기)를 사용하려는 경우

    관리되는 호환성 모드를 선택하면 기본 디버깅 엔진에서만 구현되는 일부 기능이 해제됩니다.

참고 항목

기타 리소스

Visual Studio의 디버깅