이 설명서에서는 Visual Studio의 디버깅 기능에 대한 질문과 대답을 다룹니다. 또한 디버깅 작업 또는 문제를 Visual Studio 디버거의 관련 기능에 매핑합니다. 이러한 링크는 다중 스레드 애플리케이션 디버깅, 코드 탐색, 메모리 누수, 변수 검사, 중단점 사용, 외부 코드 디버깅 등과 같은 작업 또는 문제를 다룹니다. 디버거 기능에 대한 개요가 필요한 경우 먼저 디버거 살펴보세요.
중단점
코드를 일시 중지하여 버그가 포함될 수 있는 코드 줄을 검사하려면 어떻게 해야 하나요?
중단점을 설정합니다. 자세한 내용은 올바른 유형의 중단점 사용하고 중단점 시작하기참조하세요.
특정 조건에 따라 코드 실행을 일시 중지하려면 어떻게 해야 하나요?
올바른 유형의 중단점을 설정합니다. 자세한 내용은 올바른 유형의 중단점사용하세요.
코드를 수정하거나 중지하지 않고 구성 가능한 조건에서 출력 창에 정보를 기록하려면 어떻게 해야 하나요?
추적점을 사용하면 코드를 수정하거나 중지하지 않고 구성 가능한 조건에서 출력 창에 정보를 기록할 수 있습니다. 자세한 내용은 visual Studio 디버거 추적점 사용 참조하세요.
중단점 관리 및 추적
처리되거나 처리되지 않은 특정 예외가 throw될 때 코드 일시 중지 및 디버그
예외 도우미는 오류가 발생한 위치를 보여 주지만 특정 오류를 일시 중지하고 디버그하려는 경우 예외가 throw될 때 디버거에 중단하도록지시할 수 있습니다.
호출 스택 중단점 설정
실행 흐름을 검사하거나 호출 스택 창에서 함수를 보는 동안 코드를 일시 중지하고 디버그하려면 호출 스택 창 중단점 설정참조하세요.
특정 어셈블리 명령 코드 일시 중지
디스어셈블리 창 중단점을설정하여 이 작업을 수행할 수 있습니다.
코드 탐색
디버깅하는 동안 코드를 단계별로 수행하는 명령을 어떻게 배울 수 있나요?
자세한 내용은 디버거사용하여 코드 탐색을 참조하세요.
중단점을 제거하거나 사용하지 않도록 설정하지 않고 중단점을 건너뛰는 동안 코드를 특정 줄로 실행할 수 있나요?
이러한 시나리오에서는 "커서에 강제 실행"을 사용할 수 있습니다. 중단점을 유지할 수 있으며 디버거는 커서가 있는 코드 줄에 도달할 때까지 중단점을 건너뜁니다. 또한 발생할 수 있는 첫 번째 예외 중단 조건을 건너뜁니다. 자세한 내용은 디버거사용하여 코드 탐색을 참조하세요.
코드 줄에 다른 메서드에 대한 호출이 있는 경우 특정 메서드를 한 단계씩 실행할 수 있나요?
코드 줄을 마우스 오른쪽 단추로 클릭하여 '특정 단계'를 선택할 수 있는 상황에 맞는 메뉴를 표시합니다. 그러면 단계별로 실행할 수 있는 모든 메서드 목록이 표시됩니다. 이제 관심 있는 방법을 선택할 수 있습니다.
데이터 검사 및 시각화
앱을 실행하는 동안 변수 값을 확인하려면 어떻게 해야 하나요?
데이터 팁을 사용하여 변수를 마우스로 가리키거나 자동 및 지역 창 변수를 검사할.
특정 변수의 변경 값을 관찰할 수 있나요?
변수에 대해 조사식 설정을 지정합니다. 자세한 내용은 변수조사식 설정을 참조하세요.
디버거 창에 너무 긴 문자열을 보려면 어떻게 해야 하나요?
문자열 시각화 도우미는 데이터 팁 또는 디버거 창에 너무 긴 문자열을 표시합니다. 또한 형식이 잘못된 문자열을 식별하는 데 도움이 될 수 있습니다.
Visual Studio의 기본 제공 문자열 시각화 도우미 텍스트, XML, HTML 및 JSON 옵션을 포함합니다.큰 컬렉션 개체를 보려면 어떻게 해야 하나요?
DataSet 시각화 도우미를 사용하면 DataSet, DataTable, DataView 또는 DataViewManager의 콘텐츠를 볼 수 있습니다. IEnumerable 시각화 도우미를 사용하면 배열, 목록 등과 같은 개체를 볼 수 있습니다. 자세한 내용은 테이블 형식 시각화 도우미 참조하세요.
이미 실행 중인 앱 디버그
로컬 또는 원격 컴퓨터에서 실행 중인 앱을 디버그하거나, 여러 프로세스를 동시에 디버그하거나, Visual Studio에서 생성되지 않은 앱을 디버그하거나, Visual Studio에서 시작하지 않은 앱을 디버그하려면 어떻게 해야 하나요?
동일한 애플리케이션에 반복적으로 연결하려면 어떻게 해야 하나요?
다시 연결하여 프로세스(Shift+Alt+P)를 사용하면 매번 프로세스에 연결 대화 상자를 거치지 않고도 한 번의 클릭으로 애플리케이션 디버깅을 쉽게 시작할 수 있습니다. 프로세스 다시 연결 참조
다중 스레드 애플리케이션 디버그
다중 스레드 애플리케이션을 디버그하려면 어떻게 해야 하나요? 또는 애플리케이션이 중단 상태인가요?
함수가 호출되는 순서를 보려면 어떻게 해야 하나요?
호출 스택보는 방법을 참조하세요.
메모리 분석
내 애플리케이션에 메모리 누수가 있나요?
네이티브 또는 관리되는 애플리케이션의 메모리 사용량을 분석하는 방법은 무엇입니까?
라이브 디버깅, 힙 덤프 또는 성능 프로파일러를 통해 Visual Studio 메모리 도구를 사용합니다.
메모리 분석 도구선택합니다.디버거를 연결하지 않고 네이티브 또는 관리되는 애플리케이션의 메모리 사용량을 분석하려면 어떻게 해야 하나요? 메모리 사용량 도구를 사용하도록 설정된 Visual Studio 성능 프로파일러를 사용합니다.
메모리 사용량 분석 참조하세요.두 시점 사이의 메모리 사용량을 비교할 수 있나요?
메모리 도구의 스냅샷을 비교하거나 diff 기능을 사용하여 두 개의 힙 덤프를 비교합니다. 메모리 사용량 분석 참조하세요.
외부 코드 디버깅
디버깅하는 동안 사용자 코드만 볼 수 있나요?
Just My Code는 시스템, 프레임워크 및 기타 비 사용자 코드에 대한 호출을 자동으로 수행하는 Visual Studio 디버깅 기능입니다. 호출 스택 창에서 내 코드만 이 호출을 [외부 코드] 프레임으로 축소합니다. 내 코드만 사용하여 사용자 코드만 디버그하기 참조하세요.
프로그램이 실행 중인 원시 어셈블리 지침을 보거나 디버그하려면 어떻게 해야 하나요?
디버그 > Windows > 디스어셈블리의 디스어셈블리 창을 사용합니다. 한 번에 하나의 명령을 단계별로 실행하고 개별 어셈블리 명령에 중단점을 설정할 수도 있습니다.
.NET 라이브러리에 대한 소스 코드를 볼 수 있나요?
.NET 라이브러리에 대한 기호 및 원본을 다운로드하려면 디버그 > 옵션 > 기호에서 Microsoft 기호 서버를 사용하도록 설정합니다. 기호 지정을 참조하세요.
특정 또는 공유 위치 또는 서버에서 PDB를 로드하려면 어떻게 해야 하나요?
특정 PDB를 로드하지 않는 방법 또는 항상 로드하려면 어떻게 해야 하나요?
디버깅 구성
디버거 설정을 구성하려면 어떻게 해야 하나요?
디버거 옵션 및 디버거 프로젝트 설정을 구성하려면 디버거 설정 및 준비참조하세요.
디버거에 표시된 정보를 사용자 지정하는 방법은 무엇입니까?
개체 형식 이외의 정보를 다른 디버거 창의 값으로 표시할 수 있습니다. C#, Visual Basic, F# 및 C++/CLI 코드의 경우 DebuggerDisplay 특성을 사용합니다. 고급 옵션을 위해 사용자 지정 시각화 도우미만들어 UI를 사용자 지정할 수도 있습니다. 네이티브 C++의 경우 NatVis 프레임워크사용합니다.
추가 작업
덤프를 저장해야 하나요?
디버깅하는 동안 오류 또는 중단점에서 중지된 동안 디버그 > 덤프를저장을 선택합니다. 덤프 파일 참조
덤프 파일을 분석하려면 어떻게 해야 하나요?
Visual Studio에서 파일 > 열기 선택하여 덤프를 엽니다. 디버깅을 시작하려면 Managed Only 디버그, 네이티브 전용 디버그, 혼합 디버그 또는 관리되는 메모리 디버그를 선택합니다. 덤프 파일 참조
디버깅 세션 중에 코드를 편집할 수 있나요?
편집을 사용하고계속합니다. XAML의 경우 XAML 핫 다시 로드사용합니다.
원격 머신에서 어떻게 디버그할 수 있나요?
성능 문제를 어떻게 해결할 수 있나요?
예외를 해결하려면 어떻게 해야 하나요?
예외수정을 참조하세요.