디버깅 중 IntelliTrace를 사용하여 코드 실행 기록

Visual Studio Ultimate에서 IntelliTrace를 사용하여 코드 또는 응용 프로그램의 실행 내역을 기록하고 추적하려면 평상시처럼 디버깅을 시작합니다. 기본적으로 IntelliTrace는 켜져 있고 응용 프로그램에서 어떤 일이 발생했는지 보다 쉽게 확인할 수 있도록 특정 이벤트와 데이터를 자동으로 기록합니다. IntelliTrace로 코드 실행을 기록하여 응용 프로그램 디버깅를 참조하십시오.

IntelliTrace가 켜져 있는지 확인하려면:

Visual Studio에서 IntelliTrace 사용 또는 사용 안 함

참고

IntelliTrace 사용을 선택 취소하면 모든 사용자 지정 IntelliTrace 설정이 꺼집니다.이러한 설정은 모든 프로젝트 및 솔루션에 적용됩니다.수집 옵션은 디버깅 세션과 Visual Studio 세션 간에도 유지됩니다.

수행할 작업

  • 이벤트만 디버깅

  • IntelliTrace가 기록하는 이벤트를 선택합니다.

  • 이벤트와 호출 정보 디버깅

  • IntelliTrace가 기록하는 호출 정보의 양을 제어

  • IntelliTrace 세션을 저장합니다.

이벤트만 디버깅

버그를 찾는 데 도움이 되는지 확인하려면 IntelliTrace 이벤트만 디버깅을 시도해볼 수 있습니다. IntelliTrace 이벤트는 디버거 이벤트, 예외, .NET Framework 이벤트 및 기타 시스템 이벤트입니다. 특정 이벤트를 켜거나 끄면 IntelliTrace가 기록하는 이벤트를 제어할 수 있지만 디버깅을 시작하기 전에 이 작업을 수행하십시오.

IntelliTrace 이벤트만 디버깅에 대한 시각적 개요는 다음과 같습니다.

IntelliTrace 이벤트만 - 버그 재현

IntelliTrace 이벤트만 - 이벤트 세부 정보 및 코드

IntelliTrace 이벤트만 - 발견된 버그

맨 위로 이동

IntelliTrace 이벤트만 디버깅에 대한 세부 단계는 다음과 같습니다.

  1. 일반적인 방법대로 디버깅을 시작합니다. 버그를 재현합니다.

    지역자동 창을 열린 상태로 유지하여 이러한 창에 표시되는 값을 확인하고 기록합니다.디버깅을 시작하려면 F5 키를 누르거나 디버그 메뉴에서 디버깅 시작을 선택합니다.디버깅을 시작할 때 IntelliTrace 창이 표시되지 않는 경우 IntelliTrace가 켜져 있지 않거나 창이 닫혀 있을 수 있습니다.IntelliTrace 창을 열려면 디버그, IntelliTrace, IntelliTrace 이벤트로 이동합니다.

  2. 응용 프로그램 실행을 수동으로 중단합니다.

    디버그 메뉴 또는 IntelliTrace 창에서 모두 중단을 선택합니다.

    이제 IntelliTrace 창에서 상단의 첫 번째 이벤트에서 시작하여 디버거가 실행을 중단한 마지막 이벤트로 끝나는 시간 순 목록이 표시됩니다.

    진단 이벤트를 보여 주는 IntelliTrace 창

  3. 버그를 재현한 위치에 가장 가까운 이벤트, 이 경우 응용 프로그램 실행이 중단되기 전의 이벤트를 찾습니다.

  4. 이벤트를 선택하여 세부 정보를 확장합니다.

    • 소스 코드가 있는 경우 Visual Studio는 코드를 검사할 수 있도록 포인터를 소스 창의 해당 코드로 이동시킵니다.

    • 이벤트가 발생했을 때 IntelliTrace가 기록한 데이터를 보려면 관련 보기 링크를 선택하여 해당 디버거 창을 봅니다.

    • 이벤트가 파일 액세스 이벤트인 경우 경로 이름 링크를 선택하여 해당 파일을 엽니다. 전체 경로 이름을 사용할 수 없는 경우 나타나는 검색 상자를 사용하여 파일을 찾습니다.

  5. 버그를 찾지 못한 경우 버그를 발생시킨 다른 이벤트를 검사해 보십시오. 함수 호출을 단계적으로 수행할 수 있도록 IntelliTrace가 호출 정보를 기록하도록 할 수도 있습니다.

맨 위로 이동

IntelliTrace가 기록하는 이벤트를 선택합니다.

IntelliTrace가 항상 기록하는 디버거 이벤트 및 예외를 제외하고 특정 IntelliTrace 이벤트에 대한 기록을 켜거나 끌 수 있습니다.

  1. 디버깅 중인 경우 디버깅을 중지합니다. 그렇지 않으면, 이벤트를 선택한 후 디버깅을 다시 시작합니다.

  2. 도구, 옵션, IntelliTrace, IntelliTrace 이벤트로 이동합니다. IntelliTrace에서 기록할 이벤트와 이벤트 범주를 선택합니다.

    IntelliTrace 이벤트 컬렉션 구성

맨 위로 이동

이벤트와 호출 정보 디버깅

응용 프로그램의 함수 호출 시퀀스를 검사하여 버그를 찾아야 하는 경우 IntelliTrace는 이벤트와 함께 함수 호출을 기록할 수 있습니다. 이렇게 하면 호출 스택 기록을 보고 코드에서 호출을 앞과 뒤로 이동하며 함수 이름, 함수 시작 및 종료 지점, 특정 매개 변수 값과 반환 값 등 IntelliTrace가 기록한 값을 확인할 수 있습니다. IntelliTrace로 코드 실행을 기록하여 응용 프로그램 디버깅를 참조하십시오.

  1. 디버깅 중인 경우 디버깅을 중지합니다. 그렇지 않으면 호출 정보 수집을 켠 후에 디버깅을 다시 시작합니다.

  2. 호출 수집을 켭니다.

    IntelliTrace에 대한 호출 컬렉션 구성

    이로 인해 응용 프로그램 속도가 떨어지고 디스크에 저장하고 있는 IntelliTrace 로그 파일(.iTrace 파일) 크기가 증가할 수 있습니다.대부분의 호출 데이터를 가져오지만 효과를 최소화하려면 관심 있는 모듈의 데이터만 기록합니다..iTrace 파일의 최대 크기를 변경하려면 도구, 옵션, IntelliTrace, 고급으로 이동합니다.

  3. 일반적인 방법대로 디버깅을 시작합니다. 버그를 재현합니다.

    지역자동 창을 유지하여 이러한 창에 표시되는 값을 확인하고 기록합니다.디버깅을 시작하려면 F5 키를 누르거나 디버그 메뉴에서 디버깅 시작을 선택합니다.디버깅을 시작할 때 IntelliTrace 창이 표시되지 않는 경우 IntelliTrace가 켜져 있지 않거나 창이 닫혀 있을 수 있습니다.IntelliTrace 창을 열려면 디버그, IntelliTrace, IntelliTrace 이벤트로 이동합니다.

  4. 응용 프로그램 실행을 수동으로 중단합니다.

    디버그 메뉴 또는 IntelliTrace 창에서 모두 중단을 선택합니다.

  5. 버그를 재현한 위치에 가장 가까운 이벤트를 찾습니다. 이벤트만 디버깅을 참조하십시오.

  6. 이벤트를 선택하여 세부 정보를 확장합니다. 관련 보기 옆에서 호출 뷰를 선택합니다.

    진단 이벤트를 보여 주는 IntelliTrace 창

    이제 상단의 응용 프로그램 루트 호출에서 시작하여 실시간으로 현재가 아닌 사용자가 선택한 이벤트에 상대적인 현재 호출로 끝나는 응용 프로그램의 호출 기록이 표시됩니다.

    IntelliTrace 창 호출 뷰

    현재 호출 아래 들여 쓰기된 다른 목록은 현재 호출이 다른 함수를 호출하는 것을 보여줍니다. 들여 쓴 목록은 현재 호출에 대한 IntelliTrace 이벤트도 보여줍니다.

    참고

    호출은 IntelliTrace가 해당 모듈의 데이터를 기록하지 않았기 때문에 희미하게 나타납니다.이 데이터를 보려면 IntelliTrace가 이러한 모듈의 데이터를 수집하도록 합니다.

  7. 선택한 이벤트 다음 호출을 찾습니다. 한 단계씩 실행할 수 있도록 이 호출을 두 번 클릭합니다.

    호출 뷰 창에서 한 단계씩 실행한 호출은 이제 호출 스택의 맨 아래에 있는 새로운 현재 호출이 됩니다. 들여 쓴 목록은 이제 이 새로운 현재 호출의 호출과 이벤트를 보여줍니다. 이 새로운 현재 호출에 대해서도 소스 창과 디버거 창이 업데이트됩니다.

    호출 사이트만 보고 싶은 경우 호출 뷰 창에서 호출을 두 번 클릭하지 말고 한 번 클릭합니다.그러면 포인터가 호출 사이트로 이동하지만 한 단계씩 실행하지 않고 현재 호출에 머물러 있습니다.

  8. 호출과 이벤트를 한 단계씩 실행하려면 호출 정보를 사용할 수 있을 때 소스 창을 따라 나타나는 탐색 여백을 사용합니다. 탐색 여백이 표시되지 않으면 도구, 옵션, IntelliTrace, 고급으로 이동합니다. 디버그 모드에서 탐색 여백 표시를 선택합니다.

    여기 디버거 컨텍스트 설정

    디버깅 컨텍스트를 이 단추가 나타난 호출 시간 프레임으로 설정합니다.

    이 아이콘은 현재 호출 스택의 각 프레임에만 나타납니다.

    호출 사이트로 돌아가기

    포인터와 디버깅 컨텍스트를 시간 상 뒤로 진행하여 현재 함수가 호출된 곳으로 이동합니다.

    전통적인 디버깅 모드에 있는 경우 이 명령을 사용하면 IntelliTrace를 사용한 디버깅이 시작됩니다.

    이전 호출 또는 IntelliTrace 이벤트로 이동합니다.

    포인터와 디버깅 컨텍스트를 시간 상 뒤로 진행하여 이전 호출 또는 이벤트로 이동합니다.

    전통적인 디버깅 노드에 있는 경우 이 명령을 사용하면 IntelliTrace를 사용한 디버깅이 시작됩니다.

    한 단계씩 코드 실행

    포인터와 디버깅 컨텍스트를 시간상 앞으로 진행하여 현재 선택된 함수로 이동합니다.

    이 명령은 IntelliTrace를 사용하여 디버깅 중일 때만 사용할 수 있습니다.

    다음 호출 또는 IntelliTrace 이벤트로 이동합니다.

    포인터와 디버깅 컨텍스트를 시간 상 앞으로 진행하여 IntelliTrace 데이터가 있는 다음 호출 또는 이벤트로 이동합니다.

    이 명령은 IntelliTrace를 사용하여 디버깅 중일 때만 사용할 수 있습니다.

    라이브 모드로 이동

    IntelliTrace를 사용하여 디버깅을 시작한 전통적인 디버깅으로 돌아갑니다.

  9. 호출의 특정 인스턴스를 찾으려면 해당 호출의 기록된 인스턴스에 대한 IntelliTrace 기록을 검색합니다.

    1. 호출을 한 코드 줄에서:

      IntelliTrace 디버깅 중 호출 인스턴스 찾기

      참고

      이 줄이 메서드 종료인 경우 정확한 결과를 얻을 수 없습니다.

      - 또는 -

      호출된 함수의 본문 안에서:

      1. 함수가 포함된 프로젝트 파일이 Visual Studio에서 열리는지 확인합니다.

      2. 함수 본문 내에서 바로 가기 메뉴를 엽니다. IntelliTrace에서 이 메서드 검색을 선택합니다.

    2. 결과를 탐색하여 관심이 있는 인스턴스를 찾습니다. 호출 뷰 창을 동기화하고 해당 인스턴스에 대해 기록된 데이터를 검토할 인스턴스를 선택합니다.

맨 위로 이동

IntelliTrace가 기록하는 호출 정보의 양을 제어

관심 있는 모듈에 대해서만 IntelliTrace 기록 호출 정보를 가질 수 있습니다. 이와 같이 해도 응용 프로그램 성능을 향상시킬 수 있습니다.

여러 모듈을 추가하려면 문자열의 시작이나 끝 부분에 와일드카드 문자 *를 사용합니다. 모듈 이름에는 어셈블리 이름이 아닌 파일 이름을 사용합니다. 파일 경로는 사용할 수 없습니다.

IntelliTrace에 대한 모듈 컬렉션 구성

참고

모듈을 제외해도 타사 또는 오픈 소스 모듈 같이 불필요한 모듈에서 데이터가 계속 수집될 수 있습니다.

맨 위로 이동

IntelliTrace 세션을 저장합니다.

나중에 세션을 계속하려면 세션을 IntelliTrace 로그 파일(.iTrace 파일)로 저장합니다.

세션을 수동으로 저장합니다.

Visual Studio에서 IntelliTrace 수동으로 저장

세션을 자동으로 저장

IntelliTrace 세션 자동으로 저장

디스크 공간을 절약하려면 더 이상 필요하지 않을 때는 .iTrace 파일 저장 기능을 끕니다.기존의 .iTrace 파일은 남아 있습니다.

IntelliTrace가 많은 데이터를 수집할 수 있으므로 Visual Studio는 기본 .iTrace 파일 크기를 250MB로 제한합니다.파일이 이 제한에 도달하면 Visual Studio는 가장 오래된 항목을 삭제하여 최신 항목을 위한 공간을 확보합니다.기본 제한보다 더 많은 데이터를 저장하려면 파일의 최대 기록 크기를 변경합니다.

Visual Studio는 .iTrace 파일이 자동으로 저장되고 Visual Studio 호스팅 프로세스(vshost.exe)가 켜져 있을 때 각 IntelliTrace 세션마다 두 개의 .iTrace 파일을 만듭니다.Visual Studio는 응용 프로그램을 위해 .iTrace 파일을 하나 만들고 호스팅 프로세스를 위해 .iTrace 파일을 하나 만듭니다.이 프로세스는 디버깅 성능을 개선하고 특정 디버깅 기능을 활성화하며 기본적으로 켜져 있습니다.

.iTrace 파일에는 어떤 데이터가 포함되어 있습니까?

.iTrace 파일은 예외, 스레드, 웹 요청, 테스트 데이터, 모듈 및 기타 시스템 정보에 대한 세부 정보를 포함하고 있습니다. Visual Studio Ultimate에서 파일을 열고 항목을 선택한 후 디버깅을 시작하면 파일의 이벤트로 이동하여 관련 코드와 당시 응용 프로그램에 대해 기록된 데이터를 검사할 수 있습니다. 저장된 IntelliTrace 데이터를 사용하여 응용 프로그램 디버깅를 참조하십시오.

Microsoft Test Manager에서 테스트하는 동안 발생하지만 개발 환경에서 재현하기 어려운 오류나 충돌을 디버깅하려면 IntelliTrace 데이터를 수집하도록 테스트 관리자를 구성해 보십시오. 이 데이터는 .iTrace 파일에 저장하고 추가 조사를 위해 Team Foundation Server 작업 항목에 첨부할 수 있습니다. 실패한 테스트 분석 및 버그 추적를 참조하십시오.

프로덕션 환경 같은 시스템 구성을 변경하고 싶지 않은 위치에서 발생하는 오류나 충돌을 디버깅하려면 표준 수집기를 사용하여 IntelliTrace 데이터를 .iTrace 파일에 저장해 보십시오. IntelliTrace 독립 실행형 수집기를 사용하여 프로덕션에서 진단 데이터 수집를 참조하십시오.

맨 위로 이동

자세한 정보는 어디서 얻을 수 있습니까?

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

IntelliTrace 독립 실행형 수집기를 사용하여 프로덕션에서 진단 데이터 수집

저장된 IntelliTrace 데이터를 사용하여 응용 프로그램 디버깅

블로그

Visual Studio ALM + Team Foundation Server

포럼

Visual Studio 디버거

지침

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

비디오

Channel 9 비디오: 디버깅을 위한 IntelliTrace 데이터 수집 및 분석