Partager via


Comment : générer des graphiques de dépendance pour le code C et C++

Ce Feature Pack Visual Studio 2010 vous permet de visualiser l'organisation et les relations dans le code C et C++ en générant des graphiques de dépendance dans Visual Studio 2010 Ultimate. Utilisez ces graphiques pour explorer, comprendre et gérer les dépendances dans le code source, entre les fichiers binaires, ainsi qu'entre les fichiers sources et les fichiers d'en-tête. Par exemple, vous pouvez visualiser les dépendances entre des fichiers binaires, des espaces de noms et des classes. Un graphique représente des éléments de code et leurs relations sous la forme d'un ensemble de nœuds connectés par des liens (ou bords). Pour plus d'informations, consultez Packs de fonctionnalités Visual Studio.

Important

Vous devez installer un pack Visual Studio 2010 Feature Pack pour utiliser cette fonctionnalité.

Pour effectuer cette tâche avec des projets Visual C ou Visual C++, Visual C# doit être installé avec Visual Studio.

Notez les points suivants lorsque vous générez des graphiques pour le code C et C++ :

  • Lorsque vous ouvrez une solution qui contient des projets C et C++, la mise à jour de la base de données de navigation IntelliSense peut prendre un certain temps. Pendant cette période, les commandes permettant de générer des graphiques de dépendance pour les fichiers sources et les fichiers d'en-tête ne sont pas disponibles.

    Notes

    Avant de générer un graphique de dépendance pour ces fichiers, attendez la fin des mises à jour de la base de données IntelliSense. Vous pouvez surveiller la progression de ces mises à jour dans la barre d'état Visual Studio. Pour plus d'informations sur les messages qui s'affichent en raison de la désactivation de certains paramètres IntelliSense, consultez Résolution des problèmes.

  • Le terme « assembly » est utilisé pour faire référence au concept « binaire » dans l'interface utilisateur. Par exemple, pour afficher les dépendances entre tous les fichiers binaires dans la solution, dans le menu Architecture, pointez sur Générer un graphique de dépendance, puis cliquez sur Par assembly.

    Notes

    Pour les fichiers binaires, les graphiques affichent uniquement les dépendances au niveau binaire. Par exemple, les dépendances dans le même binaire, comme les appels de méthode et les types référence, ne sont pas indiquées.

  • Le nom par défaut du document de graphique généré pour le code C et C++ est « AssemblyDependenciesN.dgml », où N est le numéro de version du document. Vous pouvez renommer ce document à tout moment.

  • Vous pouvez générer un graphique de dépendance pour une solution Visual Studio entière ou pour des éléments spécifiques.

    Notes

    Si votre solution est volumineuse, la génération d'un graphique de dépendance peut nécessiter un certain temps pour analyser tous les fichiers, ou provoquer une exception de mémoire insuffisante. Si cela se produit, réduisez la portée de votre solution ou utilisez le navigateur de l'architecture pour sélectionner des relations et des éléments spécifiques avant de générer le graphique.

  • Pour générer un graphique de dépendance pour le code C et C++, utilisez les mêmes étapes que pour le code .NET. Pour plus d'informations, consultez Comment : générer des graphiques de dépendance pour le code .NET.

Pour plus d'informations sur les problèmes qui peuvent se produire lorsque vous générez des graphiques de dépendance pour le code C ou C++, consultez Résolution des problèmes.

Consultez Dépendances entre les fichiers sources et les fichiers d'en-tête

Vous pouvez visualiser les dépendances entre les fichiers sources et les fichiers d'en-tête C et C++. Vous pouvez choisir la portée suivante de dépendances à visualiser :

Graphique de dépendance pour le code natif

Graphique de dépendance pour les fichiers inclus dans un projet C++

  • Tous les fichiers sources et les fichiers d'en-tête dans la solution

  • Fichier actuellement ouvert et tous les fichiers sources et les fichiers d'en-tête de premier niveau

Pour voir les dépendances entre

Procédez comme suit

Tous les fichiers sources et les fichiers d'en-tête dans la solution

Dans le menu Architecture, pointez sur Générer un graphique de dépendance, puis cliquez sur By Included File (Par fichier inclus).

RemarqueRemarque
Lorsque vous exécutez cette commande pour la première fois, Visual Studio doit analyser les fichiers de projet C ou C++.Cela peut prendre du temps.Pour annuler la génération de graphique, cliquez sur Annuler dans la boîte de message qui s'affiche.

Fichier actuellement ouvert et tous les fichiers sources et les fichiers d'en-tête de premier niveau

ConseilConseil
Pour voir les dépendances à des niveaux supplémentaires, utilisez Mode de navigation du voisinage sur la barre d'outils du graphique pour sélectionner le niveau des dépendances à afficher.Pour plus d'informations, consultez Comment : parcourir des documents de graphique et y accéder.
  1. Ouvrez un fichier source ou un fichier d'en-tête.

    Le fichier s'ouvre dans la fenêtre de l'éditeur de code.

  2. Cliquez avec le bouton droit n'importe où dans le fichier, puis cliquez sur Generate Graph for Included Files (Générer un graphique pour les fichiers inclus).

Graphique de dépendance de premier niveau pour le fichier .h

Graphique de dépendance pour un fichier d'en-tête avec des fichiers sources et des fichiers d'en-tête de premier niveau

Dépannage

Les problèmes suivants peuvent se produire lorsque vous générez des graphiques de dépendance pour du code C ou C++ :

Problème

Causes possibles

Solution

Visual Studio ne répond pas lorsque vous essayez de générer un graphique de dépendance dans le menu Architecture.

Le fichier de base de données du programme (.pdb) peut être endommagé.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.

Pour plus d'informations, consultez Fichiers de base de données du programme (C++).

Régénérez la solution puis recommencez.

Certains paramètres de la base de données de navigation IntelliSense sont désactivés.

Certains paramètres IntelliSense peuvent être désactivés dans la boîte de dialogue Visual Studio Options.

Activez les paramètres.

Pour plus d'informations, consultez Avancé, C/C++, Éditeur de texte, boîte de dialogue Options.

Le message Méthodes inconnues s'affiche sur un nœud de méthode.

Ce problème se produit car le nom de la méthode ne peut pas être résolu.

Le fichier binaire peut ne pas avoir de table de réadressage de base.

Activez l'option /FIXED:NO dans l'éditeur de liens.

Pour plus d'informations, consultez /FIXED (Adresse de base fixe).

Seuls les fichiers binaires qui s'exécutent sur les architectures x86 sont pris en charge.

Le fichier de base de données du programme (.pdb) peut ne pas être généré.

Un fichier .pdb stocke des informations de débogage, telles que des informations sur le type, la méthode et le fichier source.

Pour plus d'informations, consultez Fichiers de base de données du programme (C++).

Activez l'option /DEBUG dans l'éditeur de liens.

Pour plus d'informations, consultez /DEBUG (Générer les informations de débogage).

Impossible d'ouvrir ou de localiser le fichier .pdb aux emplacements attendus.

Assurez-vous que le fichier .pdb existe dans les emplacements attendus.

Les informations de débogage ont été supprimées du fichier .pdb.

Si l'option /PDBSTRIPED a été utilisée dans l'éditeur de liens, incluez à la place le fichier .pdb complet.

Pour plus d'informations, consultez /PDBSTRIPPED (Supprimer les symboles privés).

L'appelant n'est pas une fonction ; il correspond à un thunk dans le fichier binaire ou à un pointeur dans la section de données.

Lorsque l'appelant est un thunk, essayez d'utiliser _declspec(dllimport) pour éviter le thunk.

Pour plus d'informations, consultez :

Voir aussi

Concepts

Visualisation du code existant

Autres ressources

Comment : parcourir des documents de graphique et y accéder

Comment : explorer du code avec des graphiques de dépendance

Comment : modifier et personnaliser des documents de graphique