Visual Studio에서 디버깅하는 동안 호출 스택의 맵 메서드
디버깅하는 동안 호출 스택을 시각적으로 추적할 코드 맵을 만듭니다. 맵을 기록해 두면 코드에서 어떤 작업을 하고 있는지 추적하여 버그를 찾는 데 집중할 수 있습니다.
필요한 사항:
Visual C# .NET, Visual Basic .NET, C++, JavaScript 등 디버그할 수 있는 코드 Microsoft Dynamics AX용 X++ 코드나 동일한 솔루션의 여러 앱 간에 공유되는 코드를 시각화하려면 Visual Studio 2013 업데이트 2 이상을 설치해야 합니다.
참조 항목: 비디오: 코드 맵 디버거 통합으로 시각적 디버깅(채널 9) • Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map • Q & A
호출 스택 매핑
디버깅을 시작합니다. (키보드: F5)
앱이 중단 모드로 들어가거나 한 단계씩 함수를 실행한 후 코드 맵을 선택합니다. (키보드: Ctrl + Shift + `)
현재 호출 스택은 새 코드 맵에 주황색으로 표시됩니다.
디버깅하는 동안 맵이 자동으로 업데이트됩니다. Update the map with the next call stack을 참조하십시오.
코드에 대해 메모하기
코드 내용을 추적하기 위한 주석을 추가합니다. 주석에 새 줄을 추가하려면 Shift + Return을 누릅니다.
다음 호출 스택과 함께 맵 업데이트
응용 프로그램을 다음 중단점까지 실행하거나 함수로 한 단계씩 실행합니다. 맵은 새로운 호출 스택을 추가합니다.
맵에 관련 코드 추가
맵이 완성되었습니다. 다음 단계는 무엇입니까? Visual C# .NET 또는 Visual Basic .NET으로 작업하는 경우 코드에서 발생한 사건을 추적하기 위해 필드, 속성 및 기타 메서드 등의 항목을 추가합니다.
코드 정의를 보려면 메서드를 두 번 클릭합니다. (키보드: 맵에서 메서드를 선택하고 F12를 누릅니다.)
맵에서 추적할 항목을 추가합니다.
여기서 어떤 메서드가 동일한 필드를 사용하는지 쉽게 확인할 수 있습니다. 가장 최근 추가된 항목은 녹색으로 표시됩니다.
더 많은 코드를 보려면 맵 빌드를 계속합니다.
맵을 사용하여 버그 찾기
코드를 시각화하면 버그를 더 빠르게 찾을 수 있습니다. 예를 들어 드로잉 프로그램에서 버그를 조사한다고 가정하겠습니다. 선을 그렸다가 취소하려는 경우 다른 선을 그릴 때까지 아무 것도 발생하지 않습니다.
따라서 중단점을 설정하고, 디버깅을 시작하고, 다음과 같은 맵을 빌드합니다.
undo를 제외하고 맵 호출 Repaint에 대한 모든 사용자 제스처를 확인할 수 있습니다. undo가 즉시 작동하지 않는 이유를 이해할 수 있을 것입니다.
버그를 수정하고 프로그램 실행을 계속한 후에 맵은 undo의 새 호출을 Repaint에 추가합니다.
Q & A
모든 호출이 지도에 표시되지 않습니다. 이유
기본적으로 맵에는 코드만 나타납니다. 외부 코드를 보려면 호출 스택 창에서 켜거나 Visual Studio 디버깅 옵션에서 내 코드만 사용을 해제합니다.
맵을 변경하면 코드에 영향이 있습니까?
맵 변경은 어떤 방식으로도 코드에 영향을 미치지 않습니다. 맵에서 이름 바꾸기, 이동 또는 제거 기능을 자유롭게 사용할 수 있습니다.
"다이어그램이 코드의 이전 버전을 기반으로 할 수 있습니다."라는 메시지의 의미는 무엇입니까?
지도를 마지막으로 업데이트한 후 코드가 변경되었을 수 있습니다. 예를 들어 맵에 대한 호출이 더 이상 코드에 없는 경우가 있습니다. 메시지를 닫은 다음 맵을 다시 업데이트하기 전에 솔루션 다시 빌드를 시도합니다.
맵 레이아웃을 어떻게 제어해야 합니까?
매핑 도구 모음에서 레이아웃을 엽니다.
기본 레이아웃을 변경합니다.
맵을 자동으로 다시 정렬하는 것을 중지하려면 디버깅할 때 자동 레이아웃을 해제합니다.
항목을 추가할 때 최소한으로 맵을 다시 정렬하려면 증분 레이아웃을 해제합니다.
다른 사용자와 맵을 공유할 수 있습니까?
맵을 내보내고 다른 사용자에게 전송하거나(Microsoft Outlook이 있는 경우) 솔루션에 저장하여 Team Foundation 버전 제어로 체크 인할 수 있습니다.
맵에 새 호출 스택이 자동으로 추가되지 않게 하려면 어떻게 해야 합니까?
맵 도구 모음에서
를 선택합니다. 맵에 현재 호출 스택을 수동으로 추가하려면 Ctrl + Shift + **'**를 누릅니다.
디버깅하는 동안 맵은 기존 호출 스택을 맵에 계속해서 강조표시를 합니다.
항목 아이콘 및 화살표는 무슨 의미입니까?
항목에 대한 자세한 정보를 얻으려면 항목의 도구 설명을 참조하십시오. 또한 범례를 확인하여 각 아이콘의 의미를 알아 볼 수도 있습니다.
참조 항목: Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map