다음을 통해 공유


방법: C 및 C++ 코드에 대한 종속성 그래프 생성

이 Visual Studio 2010 Feature Pack을 사용하면 Visual Studio 2010 Ultimate에서 종속성 그래프를 생성하여 C 및 C++ 코드에서 구조와 관계를 시각화할 수 있습니다. 이러한 그래프를 사용하여 소스 코드에서의 종속성, 이진 파일 간 및 소스 파일과 헤더 파일 간의 종속성을 쉽게 탐색하고 이해하고 관리할 수 있습니다. 예를 들어 이진 파일, 네임스페이스 및 클래스 간의 종속성을 시각화할 수 있습니다. 그래프는 코드 요소 및 요소 관계를 링크 또는 가장자리로 연결되는 노드의 집합으로 표현합니다. 자세한 내용은 Visual Studio 기능 팩을 참조하십시오.

중요

이 기능을 사용하려면 Visual Studio 2010 Feature Pack을 설치해야 합니다.

Visual C 또는 Visual C++ 프로젝트를 사용하여 이 작업을 수행하려면 Visual C#이 Visual Studio와 함께 설치되어 있어야 합니다.

C 및 C++ 코드의 그래프를 생성할 때 다음 사항에 유의하십시오.

  • C 및 C++ 프로젝트가 포함된 솔루션을 열 때 IntelliSense 검색 데이터베이스를 업데이트하는 데 시간이 걸릴 수 있습니다. 이 시간 동안 소스 파일과 헤더 파일의 종속성 그래프를 생성하는 명령을 사용할 수 없습니다.

    참고

    이러한 파일의 종속성 그래프를 생성하기 전에 IntelliSense 데이터베이스가 업데이트를 완료할 때까지 기다리십시오. Visual Studio 상태 표시줄에서 이러한 업데이트의 진행률을 모니터링할 수 있습니다. 특정 IntelliSense 설정을 사용할 수 없기 때문에 나타나는 메시지에 대한 자세한 내용은 문제 해결을 참조하십시오.

  • "어셈블리"라는 용어는 사용자 인터페이스에서 "바이너리"를 나타내는 데 사용됩니다. 예를 들어 솔루션의 모든 이진 파일 간의 종속성을 확인하려면 아키텍처 메뉴에서 종속성 그래프 생성을 가리킨 다음 어셈블리별을 클릭합니다.

    참고

    이진 파일의 경우 그래프에는 바이너리 수준의 종속성만 표시됩니다. 예를 들어 메서드 호출 및 참조 형식과 같은 동일한 바이너리 내의 종속성은 표시되지 않습니다.

  • C 및 C++ 코드에 대해 생성된 그래프 문서의 기본 이름은 "AssemblyDependenciesN.dgml"입니다. 여기서 N은 문서의 버전 번호입니다. 언제든지 이 문서의 이름을 바꿀 수 있습니다.

  • 전체 Visual Studio 솔루션이나 특정 항목에 대한 종속성 그래프를 생성할 수 있습니다.

    참고

    매우 큰 솔루션이 있는 경우 종속성 그래프를 생성하면 모든 파일을 분석하는 데 시간이 걸리거나 메모리 부족 예외가 발생할 수 있습니다. 이러한 경우 솔루션의 범위를 줄이거나, 그래프를 생성하기 전에 아키텍처 탐색기를 사용하여 특정 요소와 관계를 선택합니다.

  • .NET 코드에 대해 수행하는 동일한 단계를 수행하여 C 및 C++ 코드에 대한 종속성 그래프를 생성합니다. 자세한 내용은 방법: .NET 코드에 대한 종속성 그래프 생성을 참조하십시오.

C 및 C++ 코드에 대한 종속성 그래프를 생성할 때 발생할 수 있는 문제에 대한 자세한 내용은 문제 해결을 참조하십시오.

소스 파일과 헤더 파일 간의 종속성 확인

C 및 C++ 소스 파일과 헤더 파일 간의 종속성을 시각화할 수 있습니다. 시각화할 종속성 범위를 다음 중에서 선택할 수 있습니다.

네이티브 코드의 종속성 그래프

C++ 프로젝트의 포함 파일에 대한 종속성 그래프

  • 솔루션의 모든 소스 파일과 헤더 파일

  • 현재 열려 있는 파일과 모든 첫 번째 수준 소스 파일 및 헤더 파일

종속성을 확인할 대상

수행할 단계

솔루션의 모든 소스 파일과 헤더 파일

아키텍처 메뉴에서 종속성 그래프 생성을 가리킨 다음 By Included File(포함 파일별)을 클릭합니다.

참고참고
이 명령을 처음 실행할 때 Visual Studio에서는 C 또는 C++ 프로젝트 파일을 분석해야 합니다.이 작업에는 다소 시간이 걸릴 수 있습니다.그래프 생성을 취소하려면 나타나는 메시지 상자에서 취소를 클릭합니다.

현재 열려 있는 파일과 모든 첫 번째 수준 소스 파일 및 헤더 파일

팁
추가 수준에서 종속성을 확인하려면 그래프 도구 모음에서 환경 찾아보기 모드를 사용하여 확인할 종속성의 수준을 선택합니다.자세한 내용은 방법: 그래프 문서 찾아보기 및 탐색을 참조하십시오.
  1. 소스 파일이나 헤더 파일을 엽니다.

    파일이 코드 편집기 창에서 열립니다.

  2. 파일에서 아무 곳이나 마우스 오른쪽 단추로 클릭한 다음 Generate Graph for Included Files(포함 파일의 그래프 생성)를 클릭합니다.

.h 파일의 첫 번째 수준 종속성 그래프

첫 번째 수준 소스 파일 및 헤더 파일이 있는 헤더 파일의 종속성 그래프

문제 해결

C 또는 C++ 코드의 종속성 그래프를 생성할 때 다음과 같은 문제가 발생할 수 있습니다.

문제

가능한 원인

해결 방법

아키텍처 메뉴에서 종속성 그래프를 생성하려고 하면 Visual Studio가 응답하지 않습니다.

프로그램 데이터베이스 파일(.pdb)이 손상될 수 있습니다.

.pdb 파일에는 형식, 메서드 및 소스 파일 정보와 같은 디버깅 정보가 저장됩니다.

자세한 내용은 프로그램 데이터베이스 파일(C++)을 참조하십시오.

솔루션을 다시 빌드한 다음 다시 시도합니다.

IntelliSense 검색 데이터베이스에 대한 특정 설정을 사용할 수 없습니다.

특정 IntelliSense 설정을 Visual Studio 옵션 대화 상자에서 사용하지 못할 수 있습니다.

설정을 사용할 수 있도록 설정합니다.

자세한 내용은 옵션 대화 상자, 텍스트 편집기, C/C++, 고급을 참조하십시오.

알 수 없는 메서드라는 메시지가 메서드 노드에 나타납니다.

이 문제는 메서드의 이름을 확인할 수 없기 때문에 발생합니다.

이진 파일에 기본 재배치 테이블이 없을 수 있습니다.

링커에서 /FIXED:NO 옵션을 설정합니다.

자세한 내용은 /FIXED(고정 기준 주소)를 참조하십시오.

x86 아키텍처에서 실행되는 이진 파일만 지원됩니다.

프로그램 데이터베이스 파일(.pdb)이 빌드되지 않았을 수 있습니다.

.pdb 파일에는 형식, 메서드 및 소스 파일 정보와 같은 디버깅 정보가 저장됩니다.

자세한 내용은 프로그램 데이터베이스 파일(C++)을 참조하십시오.

링커에서 /DEBUG 옵션을 설정합니다.

자세한 내용은 /DEBUG(디버깅 정보 생성)를 참조하십시오.

.pdb 파일을 열 수 없거나 예상되는 위치에서 찾을 수 없습니다.

.pdb 파일이 예상되는 위치에 있는지 확인합니다.

디버그 정보가 .pdb 파일에서 제거되었습니다.

/PDBSTRIPED 옵션이 링커에서 사용된 경우 전체 .pdb 파일을 대신 포함합니다.

자세한 내용은 /PDBSTRIPPED(전용 기호 제거)를 참조하십시오.

호출자가 함수가 아니며 이진 파일의 썽크이거나 데이터 섹션의 포인터입니다.

호출자가 썽크이면 썽크를 방지하기 위해 _declspec(dllimport)를 사용해 봅니다.

자세한 내용은 다음을 참조하십시오.

참고 항목

개념

기존 코드 시각화

기타 리소스

방법: 그래프 문서 찾아보기 및 탐색

방법: 종속성 그래프를 사용하여 코드 탐색

방법: 그래프 문서 편집 및 사용자 지정