코드에 대한 호출 계층 구조를 보면 선택한 메서드, 속성 또는 생성자에 대한 모든 호출을 탐색할 수 있습니다. 이렇게 하면 코드가 흐르는 방식을 더 잘 이해하고 코드 변경의 영향을 평가할 수 있습니다. 여러 수준의 코드를 검사하여 메서드 호출의 복잡한 체인과 코드에 대한 추가 진입점을 볼 수 있습니다. 이렇게 하면 가능한 모든 실행 경로를 탐색할 수 있습니다.
Visual Studio에서는 디자인 타임에 호출 계층 구조를 볼 수 있습니다. 즉, 중단점을 설정하고 디버거를 시작하여 런타임 호출 스택을 볼 필요가 없습니다.
호출 계층 구조 창 사용
호출 계층 구조 창을 표시하려면 메서드, 속성 또는 생성자 호출의 이름에 대한 코드 편집기를 마우스 오른쪽 단추로 클릭한 다음 호출 계층 구조 보기를 선택합니다.
멤버 이름은 호출 계층 구조 창의 트리 뷰 창에 나타납니다. 멤버 노드, 멤버이름 호출 및 C++의 경우 멤버 이름에서 호출을 확장하면 하위 노드가 나타납니다.
C++ 코드의 경우 멤버와 멤버의 명시적 호출을 모두 볼 수 있습니다.
비고
C++ 코드에서 멤버 함수는 생성자 또는 형식 변환 메서드와 같이 암시적으로 호출될 수 있습니다. 이러한 암시적 호출이 반드시 목록에 포함되지는 않습니다.
C# 및 Visual Basic 코드의 경우 멤버에 대한 호출을 볼 수 있지만 다음의 호출은 볼 수 없습니다.
호출 노드를 확장하면 선택한 멤버를 호출하는 모든 멤버가 표시됩니다.
C++의 경우 f 노드에서 호출 을 확장하면 선택한 멤버가 호출하는 모든 멤버가 표시됩니다.
그런 다음 각 호출 멤버를 확장하여 호출 대상 및 C++의 경우 노드에서 호출 을 볼 수 있습니다. 이렇게 하면 다음 이미지와 같이 호출자 스택으로 이동할 수 있습니다.
가상 또는 추상으로 정의된 멤버의 경우 재정의 메서드 이름 노드가 나타납니다. 인터페이스 멤버의 경우 Implements 메서드 이름 노드가 나타납니다. 이러한 확장 가능한 노드는 호출 및 호출 노드와 동일한 수준에 표시됩니다.
도구 모음의 검색 범위 상자에는 내 솔루션, 현재 프로젝트 및 현재 문서에 대한 선택 항목이 포함되어 있습니다.
호출 계층 구조 트리 뷰 창에서 자식 멤버를 선택하는 경우:
호출 계층 정보 창에는 부모 멤버에서 해당 자식 멤버가 호출되는 모든 코드 줄이 표시됩니다.
코드 정의 창이 열리면 선택한 멤버에 대한 코드가 표시됩니다(C++에만 해당). 이 창에 대한 자세한 내용은 코드 구조 보기를 참조하세요.
비고
호출 계층 구조 기능은 메서드가 이벤트 처리기로 추가되거나 대리자에 할당된 위치를 포함하는 메서드 그룹 참조를 찾을 수 없습니다. 메서드에 대한 모든 참조를 찾으려면 모든 참조 찾기 명령을 사용할 수 있습니다.
바로 가기 메뉴 항목
다음 표에서는 트리 뷰 창에서 노드를 마우스 오른쪽 단추로 클릭할 때 사용할 수 있는 몇 가지 바로 가기 메뉴 옵션을 설명합니다.
상황에 맞는 메뉴 항목 | 설명 |
---|---|
새 루트로 추가 | 선택한 노드를 트리 뷰 창에 새 루트 노드로 추가합니다. 이렇게 하면 특정 하위 트리에 주의를 집중할 수 있습니다. |
루트 제거 | 트리 뷰 창에서 선택한 루트 노드를 제거합니다. 이 옵션은 루트 노드에서만 사용할 수 있습니다. 루트 제거 도구 모음 단추를 사용하여 선택한 루트 노드를 제거할 수도 있습니다. |
정의로 이동 | 선택한 노드에서 정의로 이동 명령을 실행합니다. 멤버 호출 또는 변수 정의에 대한 원래 정의로 이동합니다. 정의로 이동 명령을 실행하려면 선택한 노드를 두 번 클릭하거나 선택한 노드에서 F12 키를 누를 수도 있습니다. |
모든 참조 찾기 | 선택한 노드에서 모든 참조 찾기 명령을 실행합니다. 그러면 프로젝트에서 클래스 또는 멤버를 참조하는 모든 코드 줄을 찾습니다. Shift+F12를 사용하여 선택한 노드에서 모든 참조 찾기 명령을 실행할 수도 있습니다. |
복사 | 선택한 노드의 내용을 복사합니다(하위 노드는 복사하지 않음). |
새로 고침 | 선택한 노드를 축소하여 다시 확장하면 현재 정보가 표시됩니다. |