Condividi tramite


Procedura: generare grafici dipendenze per il codice C e C++

Questo Feature Pack di Visual Studio 2010 consente di visualizzare l'organizzazione e le relazioni del codice C e C++ tramite la generazione di grafici dipendenze in Visual Studio 2010 Ultimate. Utilizzare questi grafici per esplorare, comprendere e gestire più facilmente le dipendenze nel codice sorgente, tra file binari e tra file di origine e file di intestazione. Ad esempio, è possibile visualizzare le dipendenze tra file binari, spazi dei nomi e classi. Un grafico rappresenta elementi del codice e le relative relazioni come set di nodi connessi tramite collegamenti o bordi. Per ulteriori informazioni, vedere Feature Pack di Visual Studio.

Nota importanteImportante

Per utilizzare questa funzionalità, è necessario installare un Feature Pack di Visual Studio 2010.

Per eseguire questa attività con progetti di Visual C o Visual C++, è necessario che Visual C# sia installato con Visual Studio.

Notare quanto segue quando si generano grafici per il codice C e C++:

  • Quando si apre una soluzione che contiene progetti C e C++, l'aggiornamento del database di esplorazione IntelliSense potrebbe richiedere tempo. Durante tale operazione, i comandi per la generazione dei grafici dipendenze per i file di origine e i file di intestazione non saranno disponibili.

    Nota

    Prima di generare un grafico dipendenze per questi file, attendere che il completamento degli aggiornamenti del database IntelliSense. È possibile monitorare lo stato degli aggiornamenti nella barra di stato di Visual Studio. Per ulteriori informazioni sui messaggi visualizzati a causa della disabilitazione di alcune impostazioni di IntelliSense, vedere Risoluzione dei problemi.

  • Il termine "assembly" è utilizzato per fare riferimento a "file binario" nell'interfaccia utente. Ad esempio, per visualizzare le dipendenze tra tutti i file binari della soluzione, scegliere Genera grafico dipendenze dal menu Architettura, quindi Per assembly.

    Nota

    Per i file binari, i grafici mostrano solo le dipendenze a livello binario. Ad esempio, le dipendenze all'interno dello stesso file binario, quali chiamate al metodo e tipi riferimento, non sono visualizzate.

  • Il nome predefinito del documento grafico generato per il codice C e C++ è "AssemblyDependenciesN.dgml" dove N è il numero di versione del documento. È possibile rinominare tale documento in qualsiasi momento.

  • È possibile generare un grafico dipendenze per una soluzione Visual Studio intera o per specifici elementi.

    Nota

    Se si dispone di una soluzione molto grande, la generazione di un grafico dipendenze potrebbe richiedere tempo per l'analisi di tutti i file o provocare un'eccezione di memoria insufficiente. Se si verifica tale situazione, ridurre l'ambito della soluzione o utilizzare Esplora architettura per selezionare elementi e relazioni specifici prima di generare il grafico.

  • Per generare un grafico dipendenze per il codice C e C++, attenersi alla medesima procedura utilizzata per il codice .NET. Per ulteriori informazioni, vedere Procedura: generare grafici di dipendenze per il codice .NET.

Per informazioni sui problemi che potrebbero verificarsi durante la generazione di grafici dipendenze per il codice C o C++, vedere Risoluzione dei problemi.

Visualizzazione delle dipendenze tra file di origine e file di intestazione

È possibile visualizzare le dipendenze tra i file di origine e i file di intestazione C e C++. È possibile scegliere di visualizzare l'ambito di dipendenze seguente:

Grafico delle dipendenze per il codice nativo

Grafico dipendenze per i file inclusi in un progetto C++

  • Tutti i file di origine e i file di intestazione della soluzione

  • Il file attualmente aperto e tutti i file di origine e i file di intestazione di primo livello

Per visualizzare le dipendenze tra

Si seguano le seguenti istruzioni

Tutti i file di origine e i file di intestazione della soluzione

Scegliere Genera grafico dipendenze dal menu Architettura, quindi Per file incluso.

NotaNota
Quando si esegue questo comando per la prima volta in Visual Studio, deve essere eseguita un'analisi dei file di progetto C o C++.Questa operazione potrebbe richiedere tempo.Per annullare la generazione del grafico, scegliere Annulla nella finestra di messaggio visualizzata.

Il file attualmente aperto e tutti i file di origine e i file di intestazione di primo livello

SuggerimentoSuggerimento
Per visualizzare le dipendenze a livelli aggiuntivi, fare clic su Modalità esplorazione nodi vicini sulla barra degli strumenti del grafico per selezionare il livello di dipendenze desiderato.Per ulteriori informazioni, vedere Procedura: esplorare documenti grafico e spostarsi tra di essi.
  1. Aprire un file di origine o un file di intestazione.

    Il file verrà aperto nella finestra dell'editor di codice.

  2. Fare clic con il pulsante destro del mouse sul file e scegliere Genera diagramma sequenza.

Grafico delle dipendenze di primo livello per il file con estensione h

Grafico dipendenze per un file di intestazione con file di origine e file di intestazione di primo livello

Risoluzione dei problemi

Quando si generano grafici di dipendenze per il codice C o C++, potrebbero verificarsi i seguenti problemi:

Problema

Possibile causa

Risoluzione

Quando si tenta di generare un grafico di dipendenze dal menu Architettura, Visual Studio smette di rispondere.

Il file di database del programma (con estensione pdb) potrebbe essere danneggiato.

Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine.

Per ulteriori informazioni, vedere File di database di programma (C++).

Ricompilare la soluzione e riprovare.

Alcune impostazioni per il database di esplorazione IntelliSense sono disabilitate.

Alcune impostazioni di IntelliSense potrebbero essere disabilitate nella finestra di dialogo Opzioni di Visual Studio.

Attivare le impostazioni per abilitarle.

Per ulteriori informazioni, vedere Avanzate, C/C++, Editor di testo, finestra di dialogo Opzioni.

Il messaggio Metodi sconosciuti viene visualizzato su un nodo di metodo.

Questo problema si verifica perché non è possibile risolvere il nome del metodo.

Il file binario potrebbe non disporre di una tabella di rilocazione di base.

Attivare l'opzione /FIXED:NO nel linker.

Per ulteriori informazioni, vedere /FIXED (Fixed Base Address).

Sono supportati solo i file binari eseguiti su architetture x86.

Il file di database del programma (con estensione pdb) potrebbe non essere compilato.

Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine.

Per ulteriori informazioni, vedere File di database di programma (C++).

Attivare l'opzione /DEBUG nel linker.

Per ulteriori informazioni, vedere /DEBUG (Generate Debug Info).

Non è possibile aprire o trovare il file pdb nei percorsi previsti.

Verificare che il file pdb esista nei percorsi previsti.

Le informazioni di debug sono state rimosse dal file pdb.

Se nel linker è stata utilizzata l'opzione /PDBSTRIPED, includere il file pdb completo.

Per ulteriori informazioni, vedere /PDBSTRIPPED (Strip Private Symbols).

Il chiamante non è una funzione e non è un thunk nel file binario o un puntatore nella sezione di dati.

Quando il chiamante è un thunk, provare a utilizzare _declspec(dllimport) per evitare il thunk.

Per ulteriori informazioni, vedere:

Vedere anche

Concetti

Visualizzazione del codice esistente

Altre risorse

Procedura: esplorare documenti grafico e spostarsi tra di essi

Procedura: esplorare il codice con grafici di dipendenze

Procedura: modificare e personalizzare documenti grafico