Share via


Impostazioni di progetto per una configurazione di debug C++

È possibile modificare le impostazioni del progetto per una configurazione di debug C o C++ nella finestra di dialogo Pagine delle proprietà, come descritto in Procedura: Impostare configurazioni di debug e rilascio. Nelle tabelle riportate di seguito sono indicate le sezioni della finestra di dialogo Pagine delle proprietà in cui sono disponibili le impostazioni correlate al debugger.

Nota

Le impostazioni del progetto di debug nella categoria Proprietà di configurazione/Debug sono diverse per le app UWP e per i componenti scritti in C++. Vedi Avviare una sessione di debug (VB, C#, C++ e XAML).

Ogni impostazione della proprietà di debug viene scritta e salvata automaticamente nel file "per utente" (con estensione vcxproj.user) per la soluzione quando si salva la soluzione.

Specificare il debugger da utilizzare nella casella di riepilogo Debugger da avviare , come descritto nella tabella seguente. Le proprietà visualizzate variano in funzione del debugger selezionato.

Cartella Proprietà di configurazione (categoria Debug)

Impostazione Descrizione
Debugger da avviare Specifica il debugger da eseguire. È possibile scegliere tra le seguenti opzioni:

- Debugger Windows locale
- Debugger Windows remoto
- Debugger del Web browser
- Debugger servizi Web
Comando (debugger Windows locale) Specifica il comando per l'avvio del programma di cui si esegue il debug nel computer locale.
Comando remoto (debugger Windows remoto) Percorso del file exe nel computer remoto. Immettere il percorso come se lo si immettesse nel computer remoto.
Argomenti di comando (debugger Windows locale)

Argomenti del comando remoto (debugger Windows remoto)
- Specifica gli argomenti relativi al comando specificato in precedenza.

In questa casella è possibile utilizzare i seguenti operatori di reindirizzamento:

< file
Legge stdin dal file.

> file
Scrive stdout nel file.

>> file
Accoda stdout al file.

2>file
Scrive stderr nel file.

2>>file
Accoda stderr al file.

2> &1
Invia l'output di stderr (2) nello stesso percorso di stdout (1).

1> &2
Invia l'output di stdout (1) nello stesso percorso di stderr (2).

Nella maggior parte dei casi, questi operatori sono applicabili solo alle applicazioni console.

Se è necessario usare caratteri di escape nel comando, è possibile usare valori ASCII, ad esempio %25 per sostituire %. Se si usa il comando Avvia debug , le virgolette doppie eseguiranno l'escape dei comandi precedenti, ad esempio "<" per sostituire <.
Directory di lavoro Specifica la cartella di lavoro del programma di cui viene eseguito il debug, relativamente alla directory di progetto in cui si trova il file EXE. Se non viene specificata, la cartella di lavoro corrisponde a quella del progetto. Per il debug remoto, la directory del progetto si trova nel server remoto.
Connetti (debugger Windows locale e debugger Windows remoto) Specifica se avviare l'applicazione o se connettersi a essa. L'impostazione predefinita è No.
Nome server remoto (debugger Windows remoto) Specifica il nome di un computer (diverso dal computer in uso) nel quale si desidera eseguire il debug di un'applicazione.

La macro di compilazione RemoteMachine viene impostata sul valore di questa proprietà. Per altre informazioni, vedere Macro per comandi e proprietà di compilazione.
Connessione (debugger Windows remoto) Consente di passare tra tipi di connessione standard e senza autenticazione per il debug remoto. Specificare il nome di un computer remoto nella casella Nome server remoto. I tipi di connessione includono:

- Remoto con autenticazione di Windows
- Remoto senza autenticazione

Nota Il debug remoto senza autenticazione può rendere vulnerabile il computer remoto alle violazioni della sicurezza. La modalità di autenticazione Windows garantisce un maggiore livello di sicurezza.

Per altre informazioni, vedere Configurazione del debug remoto.
URL HTTP (debugger servizi Web e debugger Web browser) Specifica l'URL in cui si trova il progetto di cui si esegue il debug.
Tipo di debugger Specifica il tipo di debugger da usare: Solo nativo, Solo gestito, Solo GPU, Misto, Automatico (impostazione predefinita) o Script.

- Solo nativo è destinato a codice C++ non gestito.
- Solo gestito è destinato a codice eseguibile in Common Language Runtime (codice gestito).
- Misto richiama debugger sia per codice gestito che per codice non gestito.
- Automatico determina il tipo di debugger in base alle informazioni del compilatore e del file EXE.
- Script richiama un debugger per gli script.
- Solo GPU è destinato al codice AMP C++ eseguibile in un dispositivo GPU o nell'unità di rasterizzazione dei riferimenti DirectX. Vedere Debug del codice GPU.
Ambiente (debugger Windows locale e debugger Windows remoto) Specifica le variabili di ambiente per il programma di cui si esegue il debug. Usare la sintassi della variabile di ambiente standard , ad esempio PATH="%SystemRoot%\...". Queste variabili eseguono l'override dell'ambiente di sistema oppure ne viene eseguito il merge con l'ambiente di sistema in base all'impostazione Esegui merge ambiente. Quando si fa clic nella colonna a destra, viene visualizzata una finestra "Modifica". Selezionare il collegamento per aprire l'Editor proprietà e modificare le variabili di ambiente. Per aggiungere più variabili di ambiente, usare Editor proprietà e aggiungere una variabile per riga.
Esegui merge ambiente (debugger Windows locale) Determina se verrà eseguito il merge delle variabili specificate nella casella Ambiente con l'ambiente definito dal sistema operativo. L'impostazione predefinita è Sì.
Debug SQL (tutti ad eccezione del debugger cluster MPI) Abilita il debug delle procedure SQL dall'applicazione Visual C++. L'impostazione predefinita è No.
Tipo acceleratore debug (solo debug GPU) Specifica il dispositivo GPU da utilizzare per il debug. L'installazione dei driver per dispositivi GPU compatibili comporta l'aggiunta di altre opzioni. L'impostazione predefinita è GPU - Emulatore software.
Comportamento punto di interruzione predefinito GPU (solo debug GPU) Specifica se un evento del punto di interruzione deve essere generato per ogni thread in una distorsione SIMD. L'impostazione predefinita consiste nel generare l'evento del punto di interruzione una volta sola per distorsione.
Tasto di scelta rapida predefinito AMP Specifica il tasto di scelta rapida AMP predefinito quando si esegue il debug del codice GPU. Scegliere Acceleratore software WARP per determinare se un problema è causato dall'hardware o da un driver anziché dal codice.
Directory di distribuzione (debugger Windows remoto) Specifica il percorso nel computer remoto in cui l'output del progetto verrà copiato prima dell'avvio. Il percorso può essere una condivisione di rete nel computer remoto o un percorso a una cartella nel computer remoto. L'impostazione predefinita è vuota, ovvero l'output del progetto non viene copiato in una condivisione di rete. Per abilitare la distribuzione dei file, è inoltre necessario selezionare la casella di controllo Distribuisci nella finestra di dialogo Gestione configurazione. Per altre informazioni, vedere Procedura: Creare e modificare le configurazioni.
File aggiuntivi da distribuire (debugger Windows remoto) Se la proprietà Directory di distribuzione è impostata, si tratta di un elenco delimitato da punto e virgola di cartelle o file aggiuntivi da copiare nella directory di distribuzione. L'impostazione predefinita è vuota, il che significa che nella directory di distribuzione non vengono copiati cartelle o file aggiuntivi. Per copiare il contenuto di una cartella nella stessa cartella nella directory di distribuzione, specificare un nome di cartella. Per abilitare la distribuzione dei file, è inoltre necessario selezionare la casella di controllo Distribuisci nella finestra di dialogo Gestione configurazione. Per altre informazioni, vedere Procedura: Creare e modificare le configurazioni.
Distribuisci librerie di runtime di debug Visual C++ (debugger Windows remoto) Se la proprietà Directory di distribuzione è impostata, specifica se le librerie di runtime di debug di Visual C++ per la piattaforma corrente devono essere copiate nella condivisione di rete. L'impostazione predefinita è Sì.

Cartella C/C++ (categoria Generale)

Impostazione Descrizione
Formato informazioni di debug (/Z7, /Zd, Zi, /ZI) Specifica il tipo di informazioni di debug da creare per il progetto.

In base all'opzione predefinita (/ZI), viene creato un database di programma (PDB) in un formato compatibile con la funzionalità Modifica e continuazione. Per altre informazioni, vedere /Z7, /Zd, /Zi, /ZI (Formato informazioni di debug).

Cartella C/C++ (categoria Ottimizzazione)

Impostazione Descrizione
Ottimizzazione Specifica se il codice generato dal compilatore deve essere ottimizzato. Per effetto dell'ottimizzazione, il codice eseguito viene modificato. Il codice ottimizzato non corrisponde più al codice sorgente, che rende il debug più difficile.

In base all'opzione predefinita (Disabilitato (/0d)), l'ottimizzazione non viene eseguita. È possibile disattivare l'ottimizzazione durante la fase di sviluppo e attivarla quando si crea la versione di produzione del codice.

Cartella Linker (categoria Debug)

Impostazione Descrizione
Genera informazioni di debug (/DEBUG) Comunica al linker di includere informazioni di debug con il formato specificato da /Z7, /Zd, Zi, or /ZI.
Genera file del database di programma (/PDB:nome) Specificare il nome di un file PDB (Program Database) in questa casella. Selezionare ZI o /Zi per Formato informazioni di debug.
Rimuovi simboli privati (/PDBSTRIPPED:nome file) In questa casella specificare il nome di un file PDB, se non si desidera includere simboli privati nel file PDB. Questa opzione Crea un secondo file PDB quando si compila l'immagine del programma con qualsiasi del compilatore o del linker opzioni che generano un file PDB, ad esempio /DEBUG, / Z7, /Zd. Oppure /Zi. Il secondo file PDB omette i simboli che non si desidera fornire ai clienti. Per altre informazioni, vedere /PDBSTRIPPED (rimuove simboli privati).
Genera file di mapping (/MAP) Comunica al linker di generare un file di mapping durante il collegamento. L'impostazione predefinita è No. Per altre informazioni, vedere /MAP (Genera file Map).
Nome file mappa (/MAP:name) Se si sceglie Genera file di mapping, è possibile specificare il file di mapping in questa casella. Per altre informazioni, vedere /MAP (Genera file Map).
Esportazioni mapping (/MAPINFO:EXPORTS) Include le funzioni esportate nel file di mapping. L'impostazione predefinita è No. Per altre informazioni, vedere /MAPINFO (Includi informazioni nel file map).For more information, see /MAPINFO (Include Information in Mapfile).
Assembly Debuggable (/ASSEMBLYDEBUG) Specifica le impostazioni per l'opzione /ASSEMBLYDEBUG del linker. I valori possibili sono:

- Nessun attributo Debuggable creato.
- Controllo di runtime e ottimizzazioni disabilitate (/ASSEMBLYDEBUG). Impostazione predefinita.
- Nessun controllo di runtime e ottimizzazioni abilitate (/ASSEMBLYDEBUG:DISABLE).
- <eredita da valori predefiniti> padre o di progetto.
- Per altre informazioni, vedere /ASSEMBLYDEBUG (Aggiunge DebuggableAttribute).

Queste impostazioni possono essere modificate a livello di codice nella cartella Proprietà di configurazione (categoria Debug) mediante l'interfaccia Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings. Per ulteriori informazioni, vedere VCDebugSettings.

Altre impostazioni del progetto

Per eseguire il debug dei tipi di progetto, ad esempio librerie statiche e DLL, il progetto di Visual Studio deve essere in grado di trovare i file corretti. Quando il codice sorgente è disponibile, è possibile aggiungere librerie statiche e DLL come progetti separati alla stessa soluzione per semplificare il debug. Per informazioni sulla creazione di questi tipi di progetto, vedere Creazione e uso di una libreria a collegamento dinamico (DLL) e Creazione di un oggetto tramite una libreria statica. Con il codice sorgente disponibile, è anche possibile creare un nuovo progetto di Visual Studio scegliendo File>Nuovo>progetto da codice esistente.

Per eseguire il debug di DLL esterne al progetto, vedere Debug di progetti DLL. Se è necessario eseguire il debug di un progetto DLL personalizzato, ma non si ha accesso al progetto per l'applicazione chiamante, vedere Come eseguire il debug da un progetto DLL.

Vedi anche