Поделиться через


Практическое руководство. Создание графов зависимостей для кода C и C++

Данный пакет дополнительных компонентов Visual Studio 2010 позволяет визуализировать организацию и отношения в коде С и С++, создавая графы зависимостей в Visual Studio 2010 Ultimate. С помощью этих графов можно изучать, анализировать зависимости в исходном коде, между двоичными, исходными файлами и файлами заголовков, а также управлять этими зависимостями. Например, можно визуализировать зависимости между двоичными файлами, пространствами имен и классами. Граф представляет элементы кода и их отношения в виде набора узлов, связанных ссылками или границами. Дополнительные сведения см. в разделе Пакеты функций Visual Studio.

Важно!

Для использования этой функции необходимо установить пакет дополнительных компонентов для Visual Studio 2010.

Для выполнения этой задачи с проектами Visual C или Visual C++ требуется установить Visual C# с Visual Studio.

При создании графов для кода C и С++ обратите внимание на следующее:

  • При открытии решения, содержащего проекты C и С++ обновление базы данных обзора IntelliSense может занять некоторое время. В это время команды, позволяющие создавать графы зависимостей для исходных файлов и файлов заголовков, недоступны.

    Примечание

    Дождитесь завершения обновления базы данных IntelliSense, прежде чем приступать к созданию графа зависимостей для этих файлов.Ход обновления можно отслеживать в строке состояния Visual Studio.Дополнительные сведения о сообщениях, отображаемых из-за того, что определенные параметры IntelliSense отключены, см. в разделе Устранение неполадок.

  • Для обозначения понятия "двоичный" в пользовательском интерфейсе используется термин "сборка". Например, для просмотра зависимостей между всеми двоичными файлами решения в меню Архитектура наведите указатель на пункт Сформировать диаграмму зависимостей, затем выберите вариант По сборке.

    Примечание

    Для двоичных файлов графы отображают зависимости только на двоичном уровне.Например, не отображаются зависимости внутри двоичного файла, например вызовы метода и ссылочные типы.

  • Именем документа созданного графа для кода С и С++ по умолчанию является "AssemblyDependenciesN.dgml", где N — это номер версии документа. Этот документ можно переименовать в любой момент.

  • Можно создать граф зависимостей для всего решения Visual Studio или для отдельных его элементов.

    Примечание

    Если решение очень большое, создание графа зависимостей может потребовать много времени на анализ всех файлов или привести к исключению нехватки памяти.В этом случае перед созданием графа необходимо уменьшить область решения или воспользоваться средством Обозреватель архитектуры для выбора конкретных элементов и связей.

  • Для создания графа зависимостей для кода C и C++ выполните те же действия, что и для создания кода .NET. Дополнительные сведения см. в разделе Практическое руководство. Создание графов зависимостей для кода .NET.

Сведения о проблемах, которые могут возникнуть при создании графов зависимостей для кода C или C++, см. в разделе Устранение неполадок.

Просмотр зависимостей между файлами исходного кода и файлами заголовков

Можно визуализировать зависимости между исходными файлами и файлами заголовков C и C++. Можно выбрать следующую область зависимостей для визуализации:

Граф зависимостей для машинного кода

Граф зависимостей для включенных файлов проекта C++

  • Все исходные файлы и файлы заголовков в решении

  • Открытый в настоящее время файл, все исходные файлы и файлы заголовков первого уровня

Просмотр зависимостей между

Выполните следующие действия

Все исходные файлы и файлы заголовков в решении

В меню Архитектура наведите указатель на пункт Сформировать диаграмму зависимостей, затем выберите вариант По включенному файлу.

ПримечаниеПримечание
При первом выполнении этой команды система Visual Studio должна проанализировать файлы проекта С или С++.Это может занять некоторое время.Чтобы отменить создание графа, нажмите кнопку Отмена в отобразившемся окне сообщений.

Открытый в настоящее время файл, все исходные файлы и файлы заголовков первого уровня

СоветСовет
Для просмотра зависимостей на дополнительных уровнях воспользуйтесь функцией Режим просмотра окружения на панели инструментов графа, позволяющей выбрать уровень зависимостей для просмотра.Дополнительные сведения см. в разделе Практическое руководство. Обзор документов с графами и навигация по этим документам.
  1. Откройте исходный файл или файл заголовка.

    Файл откроется в окне редактора кода.

  2. Щелкните правой кнопкой мыши в любом месте файла и выберите Создать граф для включенных файлов.

Граф зависимостей первого уровня для H-файла

Граф зависимостей файла заголовка с исходными файлами и файлами заголовков первого уровня

Устранение неполадок

При создании графов зависимостей для кода С или С++ могут возникнуть следующие проблемы:

Проблема

Возможная причина

Решение

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), чтобы избежать преобразования.

Дополнительные сведения см. в следующих разделах.

См. также

Основные понятия

Визуализация существующего кода.

Другие ресурсы

Практическое руководство. Обзор документов с графами и навигация по этим документам

Практическое руководство. Изучение кода с помощью графов зависимостей

Практическое руководство. Изменение или настройка документов с графами