방법: 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++ 프로젝트 파일을 분석해야 합니다.이 작업에는 다소 시간이 걸릴 수 있습니다.그래프 생성을 취소하려면 나타나는 메시지 상자에서 취소를 클릭합니다.
|
현재 열려 있는 파일과 모든 첫 번째 수준 소스 파일 및 헤더 파일
팁
추가 수준에서 종속성을 확인하려면 그래프 도구 모음에서 환경 찾아보기 모드를 사용하여 확인할 종속성의 수준을 선택합니다.자세한 내용은 방법: 그래프 문서 찾아보기 및 탐색을 참조하십시오.
|
|
첫 번째 수준 소스 파일 및 헤더 파일이 있는 헤더 파일의 종속성 그래프
문제 해결
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)를 사용해 봅니다. 자세한 내용은 다음을 참조하십시오. |