IntelliTrace를 사용하여 애플리케이션의 이벤트 및 메서드 호출을 기록할 수 있으며, 이를 통해 실행의 여러 지점에서 해당 상태(호출 스택 및 지역 변수 값)를 검사할 수 있습니다. 평소와 같이 디버깅을 시작합니다. IntelliTrace는 기본적으로 켜져 있으며 IntelliTrace가 기록 중인 정보를 이벤트 탭의 새 진단 도구 창에서 볼 수 있습니다. 이벤트를 선택하고 기록 디버깅 활성화를 클릭하여 이 이벤트에 대해 기록된 호출 스택 및 로컬을 확인합니다.
단계별 설명은 연습: IntelliTrace 사용을 참조하세요.
IntelliTrace는 Visual Studio Enterprise 버전에서 사용할 수 있지만 Visual Studio Professional 또는 Community 버전에서는 사용할 수 없습니다.
IntelliTrace가 켜져 있는지 확인하려면 도구 > 옵션 > IntelliTrace 옵션 페이지를 엽니다. IntelliTrace를 사용하도록 설정 하려면 기본적으로 선택해야 합니다.
비고
IntelliTrace 옵션 페이지의 모든 설정 범위는 개별 프로젝트 또는 솔루션이 아닌 전체 Visual Studio입니다. 이러한 설정의 변경 내용은 Visual Studio의 모든 인스턴스, 모든 디버깅 세션 및 모든 프로젝트 또는 솔루션에 적용됩니다.
IntelliTrace에서 기록하는 이벤트 선택(C#, Visual Basic)
특정 IntelliTrace 이벤트에 대한 기록을 켜거나 끌 수 있습니다.
디버깅하는 경우 디버깅을 중지합니다. 도구 > 옵션 > IntelliTrace > IntelliTrace 이벤트로 이동합니다. IntelliTrace에서 기록할 이벤트를 선택합니다.
스냅샷 수집(C#, Visual Basic, C++)
기본적으로 사용하도록 설정되지는 않지만 IntelliTrace는 모든 중단점 및 디버거 단계 이벤트에서 애플리케이션의 스냅샷을 캡처할 수 있으며 기록 디버깅 세션에서 이러한 스냅샷을 볼 수 있습니다. 스냅샷은 전체 애플리케이션 상태를 볼 수 있습니다. 스냅샷 캡처를 사용하도록 설정하려면 도구 > 옵션 > IntelliTrace > 일반으로 이동하고 IntelliTrace 스냅샷(관리 및 네이티브)을 선택합니다. 자세한 내용은 IntelliTrace를 사용하여 이전 앱 상태 검사를 참조하세요.
스냅샷은 Visual Studio Enterprise 2017 버전 15.5 이상에서 사용할 수 있으며 Windows 10 1주년 업데이트 이상이 필요합니다. .NET Core 및 ASP.NET Core 앱의 경우 Visual Studio Enterprise 2017 버전 15.7이 필요합니다. Windows를 대상으로 하는 네이티브 앱의 경우 Visual Studio Enterprise 2017 버전 15.9 미리 보기 2가 필요합니다.
IntelliTrace 이벤트 및 호출 정보 수집(C#, Visual Basic)
기본적으로 사용하도록 설정되지는 않지만 IntelliTrace는 이벤트와 함께 메서드 호출을 기록할 수 있습니다. 메서드 호출 컬렉션을 사용하도록 설정하려면 도구 > 옵션 > IntelliTrace > 일반으로 이동하고 IntelliTrace 이벤트 및 호출 정보(관리되는 경우에만)를 선택합니다.
통화 정보는 현재 .NET Core 및 ASP.NET Core 앱에서 사용할 수 없습니다.
이렇게 하면 호출 스택 기록을 확인하고 코드의 호출을 통해 뒤로 및 앞으로 나아갈 수 있습니다. IntelliTrace는 메서드 이름, 메서드 진입점 및 종료 지점, 특정 매개 변수 값 및 반환 값과 같은 데이터를 기록합니다.
팁 (조언)
이 옵션은 상당한 오버헤드를 추가하므로 기본적으로 사용하도록 설정되지 않습니다. IntelliTrace는 애플리케이션에서 수행하는 모든 메서드 호출을 가로채야 할 뿐만 아니라 화면에 표시하거나 디스크에 유지할 때 훨씬 더 큰 데이터 집합을 처리해야 합니다.
IntelliTrace에서 기록하는 이벤트 목록을 제한하고 수집 중인 모듈 수를 최소로 유지하여 성능 오버헤드를 줄일 수 있습니다. 자세한 내용은 IntelliTrace가 기록하는 통화 정보의 양을 제어하는 방법을 참조하세요.
탐색 여백 사용
코드 창의 왼쪽에 표시되는 탐색 여백을 사용할 수 있습니다. 탐색 여백이 표시되지 않으면 도구 > 옵션 > IntelliTrace > 고급으로 이동하고 디버그 모드에서 탐색 여백 표시를 선택합니다.
탐색 여백을 사용하면 기록 디버깅 모드에서 메서드 호출 및 이벤트를 앞뒤로 이동할 수 있습니다. 기록 디버깅에 대한 자세한 내용은 기록 디버깅을 참조하세요. 다음과 같은 여러 명령이 있습니다.
| Command | Description |
|---|---|
| 여기서 디버거 컨텍스트 설정 | 디버깅 컨텍스트를 표시되는 호출 시간 프레임으로 설정합니다. 이 아이콘은 현재 호출 스택에만 나타납니다. |
| 통화 사이트로 돌아가기 | 포인터 및 디버깅 컨텍스트를 현재 함수가 호출된 위치로 다시 이동합니다. 라이브 디버깅 모드인 경우 이 명령은 기록 디버깅을 켭니다. 원래 실행 중단으로 다시 이동하면 기록 디버깅이 꺼지고 라이브 디버깅이 설정됩니다. |
| 이전 호출 또는 IntelliTrace 이벤트로 이동 | 포인터 및 디버깅 컨텍스트를 이전 호출 또는 이벤트로 다시 이동합니다. 라이브 디버깅 모드인 경우 이 명령은 기록 디버깅을 켭니다. |
| 참여하기 | 현재 선택한 함수를 한 단계씩 실행합니다. 이 명령은 기록 디버깅 모드에 있는 경우에만 사용할 수 있습니다. |
| 다음 호출 또는 IntelliTrace 이벤트로 이동 | 포인터 및 디버깅 컨텍스트를 IntelliTrace 데이터가 있는 다음 호출 또는 이벤트로 이동합니다. 이 명령은 기록 디버깅 모드에 있는 경우에만 사용할 수 있습니다. |
| 라이브 모드로 이동 | 라이브 디버깅 모드로 돌아갑니다. |
IntelliTrace에서 줄 또는 메서드 검색
메서드 호출 정보를 사용하도록 설정한 경우에만 메서드를 검색할 수 있습니다. 특정 줄 또는 메서드에 대한 IntelliTrace 기록을 검색할 수 있습니다. 디버거 실행이 중지된 동안 함수 본문 내부를 마우스 오른쪽 버튼으로 클릭하여 상황에 맞는 메뉴를 표시하고, IntelliTrace에서 이 줄 검색 또는 IntelliTrace에서 이 메서드 검색을 클릭합니다.
IntelliTrace에서 호출 정보의 기록량을 제어하는 방법
기본적으로 IntelliTrace는 솔루션에서 사용하는 모든 모듈에 대한 정보를 기록합니다. 관심 있는 모듈에 대해서만 통화 정보를 기록하도록 IntelliTrace를 설정할 수 있습니다. 도구 > 옵션 > IntelliTrace > 모듈에서 포함할 모듈 또는 IntelliTrace에서 제외할 모듈을 지정할 수 있습니다. IntelliTrace는 지정한 모듈에서 시작된 이벤트와 관심 있는 모듈 내에서 발생한 메서드 호출만 수집합니다.
여러 모듈을 추가하려면 문자열의 시작 또는 끝에 와일드카드 문자 *를 사용합니다. 모듈 이름의 경우 어셈블리 이름이 아닌 파일 이름을 사용합니다. 파일 경로는 허용되지 않습니다.
모듈 수를 최소한으로 유지합니다. 수집할 데이터가 적기 때문에 성능이 향상됩니다. 또한 통과해야 할 데이터가 적기 때문에 UI에서 노이즈가 줄어듭니다.
IntelliTrace 데이터를 파일에 저장(C#, Visual Basic, C++)
디버깅 중이고 애플리케이션이 중단 상태일 때 디버그 > IntelliTrace > IntelliTrace 세션 저장으로 이동하여 IntelliTrace에서 수집한 데이터를 저장할 수 있습니다. 메뉴 항목이 비활성화되어 애플리케이션이 계속 실행 중이거나 디버깅을 중지한 경우 IntelliTrace에서 수집한 데이터를 저장할 수 없습니다.
도구 > 옵션 > IntelliTrace 고급으로 이동하고 이 디렉터리에서 IntelliTrace > 기록 저장을 선택하여 파일에 자동으로 저장하도록 IntelliTrace를 구성할 수 있습니다. 생성된 파일의 고정된 크기를 구성할 수도 있습니다. 이로 인해 IntelliTrace는 공간이 부족할 때 이전 데이터를 덮어씁니다. Visual Studio는 자동으로 저장되고 Visual Studio 호스팅 프로세스(vshost.exe)가 켜지면 각 IntelliTrace 세션에 대해 두 개의 파일을 만듭니다.
팁 (조언)
디스크 공간을 절약하려면 파일이 더 이상 필요하지 않을 때 자동으로 저장을 해제합니다. 기존 파일은 삭제되지 않습니다. 상황에 맞는 메뉴에서 언제든지 요청 시 파일에 저장할 수 있습니다.
IntelliTrace 데이터를 파일에 저장하면 IntelliTrace가 수집한 각 프로세스에 대해 하나의 .itrace 파일이 표시됩니다. 그런 다음 파일 열기 > 파일로 이동하고 > 파일 열기 대화 상자에서 .itrace 파일을 선택하여 Visual Studio에서 .itrace 파일을 열 수 있습니다. 자세한 내용은 저장된 IntelliTrace 데이터 사용을 참조하세요.
Blogs
Visual Studio Enterprise 2015의 IntelliTrace
이제 Visual Studio Enterprise 2015의 IntelliTrace에서 연결을 지원합니다.
IntelliTrace 독립 실행형 수집기를 사용하여 Windows 서비스에서 데이터 수집
IntelliTrace를 사용한 사용자 지정 TraceSource 및 디버깅