다음을 통해 공유


IntelliTrace로 코드 실행을 기록하여 응용 프로그램 디버그

응용 프로그램 디버깅에 사용되는 시간을 줄이려면 Visual Studio Ultimate에서 IntelliTrace를 사용하여 실행 내역을 기록하고 추적합니다.이렇게 하면 IntelliTrace에서 사용자를 대신하여 다음과 같은 작업을 수행하므로 많은 중단점을 설정하지 않고도 쉽게 더 많은 버그를 찾을 수 있습니다.

  • 응용 프로그램에서 발생하는 특정 이벤트를 기록합니다.

    이렇게 하면 디버거 이벤트 중 지역 창에 표시되는 관련 코드와 데이터 및 함수 호출 정보(수집하기로 선택하는 경우)를 검토할 수 있습니다.

  • 버그 또는 이벤트를 다시 만들기 위해 응용 프로그램을 다시 시작하는 횟수를 줄일 수 있습니다.

  • 재현하기 힘들거나 프로덕션 또는 다른 환경처럼 Visual Studio 외부에서 발생하는 오류를 디버깅합니다.

이 예제는 이벤트를 기록하여 사용자 코드에서 버그를 찾는 방법을 보여줍니다.

IntelliTrace 이벤트만 - 높은 수준 흐름

작업 중인 IntelliTrace 보기: 디버깅을 위해 프로덕션에서 IntelliTrace 데이터 수집 및 분석(Channel 9 비디오).

수행할 작업

Visual Studio에서 IntelliTrace를 사용하여 응용 프로그램 디버깅:

  • 지난 이벤트를 보여줍니다.

  • 지난 이벤트의 호출 정보를 보여줍니다.

  • 내 IntelliTrace 세션을 저장합니다.

  • IntelliTrace에서 수집하는 데이터를 제어합니다.

테스트 관리자에서 테스트 세션 동안 IntelliTrace 데이터를 수집합니다.

Visual Studio 외부에서 실행되는 응용 프로그램에서 IntelliTrace 데이터 수집

IntelliTrace 로그 파일(.iTrace 파일)에서 디버깅을 시작합니다.

FAQ

  • IntelliTrace를 사용하여 어떤 응용 프로그램을 디버깅할 수 있습니까?

  • IntelliTrace로 디버깅하는 이유는 무엇입니까?

  • IntelliTrace에서 수집하는 데이터는 무엇입니까?

  • IntelliTrace가 응용 프로그램 속도를 저하시킵니까?

IntelliTrace를 사용하여 어떤 응용 프로그램을 디버깅할 수 있습니까?

지원됨

제한된 지원

  • 시험 차원의 F# 응용 프로그램

  • 이벤트에만 지원되는 Windows 스토어 응용 프로그램

지원 안 함

  • C++, 다른 언어 및 스크립트

  • Silverlight, Xbox 또는 Windows Mobile 응용 프로그램

[!참고]

이미 실행 중인 프로세스를 디버깅하는 경우 IntelliTrace를 사용할 수 없습니다.프로세스를 시작할 때 IntelliTrace를 시작해야 합니다.

IntelliTrace로 디버깅하는 이유는 무엇입니까?

전통적인 또는 live 디버깅은 과거 이벤트에 대해 제한된 데이터를 사용하여 응용 프로그램의 현재 상태만 보여줍니다.응용 프로그램의 현재 상태를 기반으로 이러한 이벤트를 유추하거나 응용 프로그램을 다시 실행하여 이러한 이벤트를 다시 만들어야 합니다.

IntelliTrace는 이러한 시점에 특정 이벤트와 데이터를 기록하여 전통적인 디버깅 경험을 확장합니다.이렇게 하면 특히 버그가 발생한 위치를 지나친 경우 응용 프로그램을 다시 시작하지 않고 어떤 일이 발생했는지 확인할 수 있습니다.IntelliTrace는 전통적인 디버깅 중에 기본적으로 켜지며 데이터를 자동으로 표시하지 않고 수집합니다.이렇게 하면 전통적인 디버깅과 IntelliTrace 디버깅 사이를 쉽게 전환하여 기록된 정보를 볼 수 있습니다.Visual Studio에서 디버깅을 위해 IntelliTrace로 코드 실행 기록 및 IntelliTrace에서 수집하는 데이터는 무엇입니까?를 참조하십시오.

IntelliTrace는 재현하기 어렵거나 Visual Studio 외부에서 발생하는 오류를 디버깅할 수도 있습니다.IntelliTrace 데이터를 수집하고 IntelliTrace 로그 파일(.iTrace 파일)에 저장할 수 있습니다..iTrace 파일은 예외, 스레드, 웹 요청, 테스트 데이터, 모듈 및 기타 시스템 정보에 대한 세부 정보를 포함하고 있습니다.Visual Studio Ultimate에서 이 파일을 열고 항목을 선택하고 IntelliTrace를 사용하여 디버깅을 시작할 수 있습니다.이렇게 하면 파일에 있는 이벤트로 이동하여 해당 시점에 응용 프로그램에 대한 특정 정보를 볼 수 있습니다.

다음 소스의 IntelliTrace 데이터를 저장할 수 있습니다.

  • Visual Studio Ultimate의 IntelliTrace 세션

  • Microsoft Test Manager의 테스트 세션

  • 프로덕션 또는 다른 환경과 같이 Visual Studio 외부에서 실행되는 앱

  • Visual Studio 2012.1: System Center 2012 서비스 팩 1(SP1)에서 모니터링된 응용 프로그램 - IntelliTrace Profiling Management Pack을 사용한 Operations Manager.System Center 2012에서 IntelliTrace와의 통합을 구성하는 방법을 참조하십시오.

자세한 내용은 IntelliTrace 로그 파일(.iTrace)로 응용 프로그램 디버깅를 참조하십시오.

다음은 IntelliTrace를 이용하여 디버깅하는 몇 가지 예입니다.

  • 응용 프로그램의 데이터 파일이 손상되었지만 이 이벤트가 어디에서 발생했는지 모릅니다.

    이 경우 IntelliTrace를 사용하지 않는다면 코드 전체를 검사하여 가능한 모든 파일 액세스를 찾고, 해당 액세스 지점에 중단점을 설정한 다음, 응용 프로그램을 다시 실행하여 문제가 발생하는 지점을 찾아야 합니다.IntelliTrace를 사용하면 수집된 모든 파일-액세스 이벤트와 각 이벤트가 발생했을 때 응용 프로그램에 대한 특정 세부 사항을 볼 수 있습니다.

  • 예외가 발생합니다.

    IntelliTrace가 없으면 예외에 대한 메시지가 표시되지만 예외를 일으킨 이벤트에 대한 많은 정보를 갖지 못하게 됩니다.호출 스택을 검사하여 예외를 초래한 호출 체인을 확인할 수 있지만 이러한 호출 중 발생한 이벤트 시퀀스는 확인할 수 없습니다.IntelliTrace를 사용하면 예외가 발생하기 전에 발생한 이벤트를 검사할 수 있습니다.

  • 응용 프로그램이 테스트 컴퓨터에서 충돌하더라도 개발 컴퓨터에서는 성공적으로 실행됩니다.

    Microsoft Test Manager에서 IntelliTrace 데이터를 수집하고 데이터를 .iTrace 파일에 저장하며 이 파일을 향후 조사를 위해 Team Foundation Server 작업 항목에 첨부할 수 있습니다.재현하기 어려운 버그에 진단 추적 데이터 포함IntelliTrace 로그 파일(.iTrace)로 응용 프로그램 디버깅을 참조하십시오.

  • Visual Studio 외부에서 실행되는 응용 프로그램에서 버그 또는 충돌이 발생합니다.

    Windows Azure 기반 응용 프로그램의 경우 응용 프로그램을 게시하기 전에 IntelliTrace 데이터 수집을 구성할 수 있습니다.응용 프로그램을 실행하는 동안 IntelliTrace는 데이터를 .iTrace 파일에 저장합니다.IntelliTrace 및 Visual Studio를 사용하여 게시된 클라우드 서비스 디버깅을 참조하십시오.

    IIS 7.0, 7.5 및 8.0에서 호스팅되는 관리되는 데스크톱(.exe) 앱과 ASP.NET 웹 앱 및 SharePoint 2010 응용 프로그램의 경우 독립 실행형 수집기를 사용하여 IntelliTrace 데이터를 .iTrace 파일로 저장할 수 있습니다.

    이 기능은 예를 들어 프로덕션 환경 같이 시스템 구성을 변경하고 싶지 않은 곳에서 실행하는 응용 프로그램의 문제를 진단하고 싶을 때 유용합니다.시스템 구성을 변경하지 않고 수집기를 설치할 수 있습니다.데이터 수집이 완료되면 수집기를 삭제하여 제거하십시오.자세한 내용은 독립 실행형 수집기로 Visual Studio 외부에서 IntelliTrace 데이터 수집를 참조하십시오.

IntelliTrace에서 수집하는 데이터는 무엇입니까?

이벤트 정보 수집

기본적으로 IntelliTrace는 IntelliTrace 이벤트만 기록합니다.이것은 디버거 이벤트, 예외, .NET Framework 이벤트 및 디버깅에 유용한 기타 시스템 정보가 포함됩니다.항상 수집되는 디버거 이벤트와 예외를 제외하고 수집하려는 IntelliTrace 이벤트 종류를 선택할 수 있습니다.자세한 내용은 Visual Studio에서 디버깅을 위해 IntelliTrace 수집 구성를 참조하십시오.

  • 디버거 이벤트

    IntelliTrace는 Visual Studio 디버거에서 발생하는 이벤트는 항상 기록합니다.예를 들어, 응용 프로그램 시작은 디버거 이벤트입니다.다른 디버거 이벤트로는 응용 프로그램의 실행을 중단시키는 중지 이벤트가 있습니다.예를 들어, 프로그램이 중단점에 도달하거나, 추적점에 도달하거나, Step 명령을 실행합니다.

    성능을 위해 IntelliTrace는 디버거 이벤트에 대한 모든 값을 가능하면 기록하지 않습니다.대신, 이러한 값을 기록합니다.

    • 지역 창의 값다음 값을 보려면 지역 창을 열어 둡니다.

    • 자동 창이 열리는 경우에만 자동 창의 값

    • 값을 보기 위해 소스 창에 있는 변수 위로 마우스 포인터를 이동하면 나타나는 DataTips의 값입니다.IntelliTrace는 고정된 DataTips에서는 값을 수집하지 않습니다.

  • 예외

    IntelliTrace에서는 이러한 종류의 예외에 대한 예외 형식과 메시지를 수집합니다.

    • 예외가 throw되고 발견된 예외 처리

    • 처리되지 않은 예외

  • .NET Framework 이벤트

    기본적으로 IntelliTrace는 가장 일반적인 .NET Framework 이벤트를 기록합니다.예를 들면 다음과 같습니다.

    • 파일 액세스 이벤트의 경우 IntelliTrace가 파일 이름을 수집합니다.

    • 확인란 확인 이벤트의 경우 IntelliTrace는 확인란 상태와 텍스트를 수집합니다.

  • Visual Studio 2012.1: SharePoint 2010 응용 프로그램 이벤트

    Visual Studio 외부에서 실행되는 SharePoint 2010 응용 프로그램의 경우 Visual Studio 2012.1의 독립형 수집기를 사용하여 특정 SharePoint 이벤트를 .iTrace 파일로 기록 및 저장할 수 있습니다.

    .iTrace 파일을 열면 SharePoint 상관 관계 ID를 입력하여 일치하는 웹 요청을 찾고 기록된 이벤트를 보고 특정 이벤트에서 디버깅을 시작할 수 있습니다.파일에 처리되지 않은 예외가 있는 경우 상관 관계 ID를 선택하여 예외 디버깅을 시작할 수 있습니다.사용자 프로필 이벤트와 ULS(Unified Logging System) 이벤트의 하위 집합을 기록할 수 있습니다.

    참조

함수 호출 정보 수집

함수의 호출 정보를 수집하도록 IntelliTrace를 구성할 수 있습니다.이 정보를 사용하면 호출 스택의 내역을 확인하고 코드에 있는 호출을 통해 뒤로/앞으로 이동할 수 있습니다.각 함수 호출에 대해 IntelliTrace는 이 데이터를 기록합니다.

  • 함수 이름

  • 함수 시작 지점에서 매개 변수로 전달하고 함수 종료 지점에서 반환되는 원시 데이터 형식의 값입니다.

  • 읽거나 변경될 때 자동 속성의 값

  • 첫 번째 수준 하위 개체에 대한 포인터이지만 null인지 여부 외에 해당 값에 대한 포인터가 아닙니다t

[!참고]

IntelliTrace는 배열에서 처음 256 개체와 문자열의 경우 처음 256자만 수집합니다.

자세한 내용은 Visual Studio에서 디버깅을 위해 IntelliTrace 수집 구성를 참조하십시오.

이벤트 모듈 정보

IntelliTrace가 호출 정보를 어느 정도 수집할지 제어하려면 원하는 모듈만 지정합니다.이와 같이 하면 수집하는 동안 응용 프로그램 성능을 향상시킬 수 있습니다.자세한 내용은 Visual Studio에서 디버깅을 위해 IntelliTrace 수집 구성를 참조하십시오.

IntelliTrace가 응용 프로그램 속도를 저하시킵니까?

기본적으로 IntelliTrace에서는 선택한 IntelliTrace 이벤트에 대해서만 데이터를 수집합니다.코드의 구조와 구성에 따라 응용 프로그램이 느려지거나 느려지지 않을 수 있습니다.예를 들어, IntelliTrace가 이벤트를 종종 기록하는 경우 응용 프로그램을 느리게 할 수 있지만 응용 프로그램 리팩터링을 고려할 것인지 묻는 메시지가 나타날 수도 있습니다.

호출 정보를 수집하면 응용 프로그램 성능이 크게 느려질 수 있습니다.디스크에 저장하는 경우 IntelliTrace 로그 파일(.iTrace 파일)의 크기도 증가할 수 있습니다.이러한 효과를 최소화하려면 관심 있는 모듈에 대한 호출 정보만 수집합니다..iTrace 파일의 최대 크기를 변경하려면 도구, 옵션, IntelliTrace, 고급으로 이동합니다.자세한 내용은 Visual Studio에서 디버깅을 위해 IntelliTrace 수집 구성를 참조하십시오.

자세한 정보는 어디서 구할 수 있습니까?

Visual Studio에서 디버깅을 위해 IntelliTrace로 코드 실행 기록

Visual Studio에서 디버깅을 위해 IntelliTrace 수집 구성

재현하기 어려운 버그에 진단 추적 데이터 포함

독립 실행형 수집기로 Visual Studio 외부에서 IntelliTrace 데이터 수집

IntelliTrace 로그 파일(.iTrace)로 응용 프로그램 디버깅

Dd264915.collapse_all(ko-kr,VS.110).gif블로그

Visual Studio ALM + Team Foundation Server

Dd264915.collapse_all(ko-kr,VS.110).gif포럼

Visual Studio Debugger

Dd264915.collapse_all(ko-kr,VS.110).gif지침

Visual Studio 2012를 사용한 연속 배달 테스트 – 6장: 도구 상자 테스트

Dd264915.collapse_all(ko-kr,VS.110).gif비디오

Channel 9 IntelliTrace 데이터 수집 및 분석