Opzioni generali di debug
Per impostare le opzioni del debugger di Visual Studio, selezionare Strumenti>Opzionie in Debug selezionare o deselezionare le caselle accanto alle opzioni Generale. È possibile ripristinare tutte le impostazioni predefinite con strumenti di >impostazioni di importazione ed esportazione>Reimpostare tutte le impostazioni. Per reimpostare un subset di impostazioni, salvare le impostazioni con Importazione/Esportazione guidata impostazioni prima di apportare le modifiche da testare, quindi importare le impostazioni salvate in un secondo momento.
È possibile impostare le seguenti opzioni Generali:
Chiedi prima di eliminare tutti i punti di interruzione: richiede conferma prima di completare il comando elimina tutti i punti di interruzione .
Interrompere tutti i processi quando un processo si interrompe: interrompe simultaneamente tutti i processi a cui è collegato il debugger, quando si verifica un'interruzione.
Interrompi quando le eccezioni attraversano i limiti di AppDomain o gestiti/nativi: nel debug in modalità gestita o mista, Common Language Runtime può intercettare eccezioni che attraversano i limiti del dominio applicativo o i limiti gestiti/nativi quando si verificano le condizioni seguenti:
Quando il codice nativo chiama codice gestito usando l'interoperabilità COM e il codice gestito genera un'eccezione. Vedere Introduzione all'interoperabilità COM.
Quando il codice gestito in esecuzione nel dominio applicazione 1 chiama codice gestito nel dominio applicazione 2 e il codice nel dominio applicazione 2 genera un'eccezione. Consultare la programmazione con i domini di applicazione.
Quando il codice chiama una funzione usando la reflection e tale funzione genera un'eccezione. Vedere Reflection.
In condizioni 2 e 3, l'eccezione viene talvolta intercettata dal codice gestito in mscorlib
anziché da Common Language Runtime. Questa opzione non influisce sull'interruzione al verificarsi di eccezioni rilevate da mscorlib
.
Abilitare il debug a livello di indirizzo: abilita le funzionalità avanzate per il debug a livello di indirizzo (la finestra disassembly, la finestra Registri e i punti di interruzione dell'indirizzo).
- Mostra Disassembly se l'origine non è disponibile: Visualizza automaticamente la finestra Disassembly quando si esegue il debug del codice per cui l'origine non è disponibile.
Abilitare i filtri dei punti di interruzione: consente di impostare filtri in punti di interruzione in modo che influiscano solo su processi, thread o computer specifici.
Utilizza il nuovo helper delle eccezioni: Abilita l'helper delle eccezioni che sostituisce l'assistente delle eccezioni. (L'Exception Helper è supportato a partire da Visual Studio 2017)
Nota
Per il codice gestito, questa opzione era precedentemente chiamata Attivare l'assistente alle eccezioni.
Enable Just My Code: il debugger visualizza e esegue i passaggi solo nel codice utente ("My Code") ignorando il codice di sistema e altro codice ottimizzato o che non dispone di simboli di debug.
- Avvisa se non vienecodice utente all'avvio (solo gestito): quando il debug inizia con Just My Code abilitato, questa opzione avvisa se non è presente codice utente ("My Code").
Abilitare il tracing del codice sorgente di .NET Framework: Consente al debugger di eseguire il passo nel codice sorgente di .NET Framework. L'abilitazione di questa opzione disabilita automaticamente Just My Code. I simboli di .NET Framework verranno scaricati in una posizione cache. Modificare il percorso della cache con la finestra di dialogo Opzioni , categoria Debugging , pagina Simboli .
Eseguire il passaggio su proprietà e operatori (solo gestiti): Impedisce al debugger di entrare in proprietà e operatori nel codice gestito.
Abilitare la valutazione delle proprietà e altre chiamate di funzione implicite: attiva la valutazione automatica delle proprietà e delle chiamate di funzione implicite nelle finestre delle variabili e nella finestra di dialogo QuickWatch .
- Funzione di conversione di stringhe di chiamata su oggetti in finestre variabili (solo C# e JavaScript): esegue una chiamata di conversione di stringa implicita durante la valutazione di oggetti nelle finestre delle variabili. Il risultato viene visualizzato come stringa anziché come nome del tipo. Si applica solo durante il debug nel codice C#. Questa impostazione può essere sostituita dall'attributo DebuggerDisplay (vedere Uso dell'attributo DebuggerDisplay).
Abilitare il supporto del server di origine: indica al debugger di Visual Studio di ottenere i file di origine dai server di origine che implementano il protocollo SrcSrv (srcsrv.dll
). Team Foundation Server e Gli strumenti di debug per Windows sono due server di origine che implementano il protocollo. Per altre informazioni sull'installazione di SrcSrv, vedere la documentazione SrcSrv. Vedere anche Specificare il simbolo (pdb) e i file di origine.
Importante
Poiché la lettura di file .pdb può eseguire codice arbitrario, assicurati di considerare attendibile il server.
Stampare i messaggi di diagnostica del server di origine nella finestra output: quando è abilitato il supporto del server di origine, questa impostazione attiva la visualizzazione diagnostica.
Consenti server di origine per assembly di attendibilità parziale (solo gestiti): quando il supporto del server di origine è abilitato, questa impostazione sostituisce il comportamento predefinito di non recuperare origini per assembly di attendibilità parziale.
eseguire sempre comandi server di origine non attendibili senza richiedere: quando è abilitato il supporto del server di origine, questa impostazione sostituisce il comportamento predefinito della richiesta quando si esegue un comando non attendibile.
Abilita il supporto del collegamento di origine: indica al debugger di Visual Studio di scaricare i file di origine per file con estensione pdb contenenti informazioni sul collegamento di origine. Per ulteriori informazioni sul collegamento all'origine, consultare la specifica del collegamento all'origine .
Importante
Poiché il collegamento all'origine scaricherà i file utilizzando http o https, assicurati di fidarti del file .pdb.
- Eseguire il fallback all'autenticazione di Git Credential Manager per tutte le richieste Source Link: quando è abilitato il supporto Source Link e l'autenticazione di una richiesta Source Link non riesce, Visual Studio chiama il Git Credential Manager.
Evidenzia l'intera riga di origine per i punti di interruzione e l'istruzione corrente (solo C++): quando il debugger evidenzia un punto di interruzione o un'istruzione corrente, evidenzia l'intera riga.
Richiedi che i file di origine corrispondano esattamente alla versione originale: indica al debugger di verificare che un file di origine corrisponda alla versione del codice sorgente usato per compilare il file eseguibile di cui si sta eseguendo il debug. Quando la versione non corrisponde, viene richiesto di trovare un'origine corrispondente. Se non viene trovata un'origine corrispondente, il codice sorgente non verrà visualizzato durante il debug.
Reindirizza tutto il testo della finestra di output alla finestra Immediata: invia invece tutti i messaggi del debugger che normalmente vengono visualizzati nella finestra output alla finestra immediata.
Mostra struttura non elaborata di oggetti nelle finestre delle variabili: disattiva tutte le personalizzazioni della visualizzazione struttura di oggetti. Per altre informazioni sulle personalizzazioni della visualizzazione, vedere Creare viste personalizzate di oggetti gestiti.
Eliminare l'ottimizzazione JIT al caricamento del modulo (solo gestito): disabilita l'ottimizzazione JIT del codice gestito quando viene caricato un modulo e JIT viene compilato mentre il debugger è collegato. La disabilitazione dell'ottimizzazione può semplificare il debug di alcuni problemi, anche se a scapito delle prestazioni. Se si usa Just My Code, l'eliminazione dell'ottimizzazione JIT può causare la visualizzazione del codice non utente come codice utente ("Codice personale"). Per ulteriori informazioni, vedere l'ottimizzazione JIT e il debug .
Abilitare il debug JavaScript per ASP.NET (Chrome, Microsoft Edge e Internet Explorer): abilita il debugger di script per le app ASP.NET. Al primo uso in Chrome, potrebbe essere necessario accedere al browser per abilitare le estensioni chrome installate. Disabilitare questa opzione per ripristinare il comportamento legacy.
Abilitare l'uso del debugger JavaScript multi-destinazione per il debug di JavaScript nelle destinazioni applicabili (richiede il riavvio del debug) Abilita la connessione al browser e al back-end contemporaneamente, consentendo di eseguire il debug del codice in esecuzione nel client e nel server direttamente dall'editor.
Carica le esportazioni DLL (solo nativo): Carica le tabelle di esportazione DLL. Le informazioni sui simboli delle tabelle di esportazione dll possono essere utili se si usano messaggi di Windows, procedure Windows (WindowProcs), oggetti COM o marshalling o qualsiasi DLL per cui non si dispone di simboli. La lettura delle informazioni di esportazione dll comporta un sovraccarico. Di conseguenza, questa funzionalità è disattivata per impostazione predefinita.
Per vedere quali simboli sono disponibili nella tabella di esportazione di una DLL, usare dumpbin /exports
. I simboli sono disponibili per qualsiasi DLL di sistema a 32 bit. Leggendo l'output dumpbin /exports
, è possibile visualizzare il nome esatto della funzione, inclusi i caratteri non alfanumerici. Ciò è utile per impostare un punto di interruzione su una funzione. I nomi delle funzioni delle tabelle di esportazione dll potrebbero apparire troncati altrove nel debugger. Le chiamate sono elencate nell'ordine di chiamata, con la funzione corrente (la più profondamente annidata) nella parte superiore. Per altre informazioni, vedere dumpbin /exports.
Mostra il diagramma degli stack paralleli dal basso verso l'alto: controlla la direzione in cui gli stack vengono visualizzati nella finestra Stack paralleli.
Ignora eccezioni di accesso alla memoria GPU se i dati scritti non hanno modificato il valore: ignora le race condition rilevate durante il debug se i dati non sono stati modificati. Per ulteriori informazioni, vedere Debugging del codice GPU.
Usare la modalità di compatibilità gestita: sostituisce il motore di debug predefinito con una versione legacy per abilitare questi scenari:
Si sta usando un linguaggio .NET diverso da C#, Visual Basic o F# che fornisce il proprio analizzatore di espressioni (che include C++/CLI).
Si vuole abilitare Modifica e continuazione per i progetti C++ durante il debug in modalità mista.
Nota
La scelta della modalità di compatibilità gestita disabilita alcune funzionalità implementate solo nel motore di debug predefinito. Il motore di debug legacy è stato sostituito in Visual Studio 2012.
Avvisa quando si usano visualizzatori di debugger personalizzati in caso di processi potenzialmente non sicuri (solo gestiti): Visual Studio avvisa quando si usa un visualizzatore di debugger personalizzato che esegue codice nel processo sottoposto a debug, perché potrebbe eseguire codice non sicuro.
Abilitare l'allocatore dell'heap di debug di Windows (solo applicazioni native): Abilita l'heap di debug di Windows per migliorare la diagnostica dell'heap. L'abilitazione di questa opzione influirà sulle prestazioni di debug.
Abilitare gli strumenti di debug dell'interfaccia utente perXAML: la struttura ad albero visuale attiva e le finestre Esplora proprietà attive verranno visualizzate quando si avvia il debug (F5) un tipo di progetto supportato. Per altre informazioni, vedere Controllare le proprietà XAML durante il debug.
Gli elementi selezionati Anteprima instruttura ad albero visuale attiva: l'elemento XAML il cui contesto è selezionato è selezionato anche nella finestra struttura ad albero visuale attiva.
Mostra gli strumenti di runtime nell'applicazione: Mostra i comandi dell'albero visivo live in una barra degli strumenti nella finestra principale dell'applicazione XAML che è in fase di debug.
Abilita ricaricamento rapido XAML: consente di usare la funzionalità Ricaricamento rapido XAML con codice XAML quando l'app è in esecuzione. (Questa funzionalità era precedentemente denominata "Modifica e continuazione XAML")
Enable Just My XAML: a partire da Visual Studio 2019 versione 16.4, il Live Visual Tree per impostazione predefinita mostra solo XAML classificato come codice utente. Se disabiliti questa opzione, tutto il codice XAML generato viene visualizzato nello strumento.
Disattiva la modalità di selezione quando viene selezionato un elemento A partire da Visual Studio 2019 versione 16.4, il pulsante del selettore degli elementi della barra degli strumenti in-app (Abilita selezione) disattiva quando viene selezionato un elemento. Se disabiliti questa opzione, la selezione degli elementi rimane attiva fino a quando non fai di nuovo clic sul pulsante della barra degli strumenti in-app.
Applica ricaricamento rapido XAML al salvataggio del documento A partire da Visual Studio 2019 versione 16.6, applica ricaricamento rapido XAML quando si salva il documento.
Abilitare gli Strumenti di Diagnostica durante il debug: la finestra Strumenti di Diagnostica appare durante il debug.
Mostra tempo trascorso PerfTip durante il debug: nella finestra del codice viene visualizzato il tempo trascorso di una determinata chiamata al metodo durante il debug.
Abilita modifica e continua: abilita la funzionalità Modifica e Continua durante il debug.
Abilita modifica nativa e continua: è possibile usare la funzionalità Modifica e continuazione durante il debug del codice C++ nativo. Per altre informazioni, vedere Modifica e continuazione (C++).
Applica le modifiche quando si continua (solo nella versione nativa): Visual Studio compila automaticamente e applica tutte le modifiche di codice in sospeso effettuate nel momento in cui si riprende il processo da uno stato di interruzione. Se non è selezionata l'opzione, è possibile scegliere di applicare le modifiche al codice usando l'opzione Applica modifiche al codice nel menu Debug.
Avvisa di codice non aggiornato (solo nativo): ottenere avvisi sul codice non aggiornato.
Mostra il pulsante Esegui al clic nell'editor durante il debug: quando questa opzione è selezionata, il pulsante Esegui al clic verrà visualizzato durante il debug.
Chiudere automaticamente la console quando il debug arresta: indica a Visual Studio di chiudere la console alla fine di una sessione di debug.
Abilitare la valutazione rapida delle espressioni (solo gestita): consente al debugger di tentare una valutazione più rapida simulando l'esecuzione di semplici proprietà e metodi.
Caricare i simboli di debug nel processo esterno (solo nativo) Abilita questa di ottimizzazione della memoria durante il debug.
Portare Visual Studio in primo piano quando si interrompe il debugger Passa Visual Studio in primo piano quando si sospende nel debugger.
Mantieni aperti i suggerimenti per i dati espansi finché non si fa clic altrove Quando questa opzione è selezionata, un suggerimento per i dati espansi resta aperto finché non si fa clic lontano da esso.
Opzioni disponibili nelle versioni precedenti di Visual Studio
Se si usa una versione precedente di Visual Studio, potrebbero essere presenti alcune opzioni aggiuntive.
Enable Edge Developer Tools for UWP JavaScript Apps (Experimental): abilita gli strumenti di sviluppo per le app JavaScript UWP in Microsoft Edge.
Abilitare il debugger JavaScript di Chrome legacy per ASP.NET: abilita il debugger di script JavaScript di Chrome legacy per le app ASP.NET. Al primo uso in Chrome, potrebbe essere necessario accedere al browser per abilitare le estensioni chrome installate.
Abilitare l'assistente eccezioni: per il codice gestito, abilita l'Assistente eccezioni. A partire da Visual Studio 2017, lo strumento di supporto per eccezioni ha sostituito l'assistente per le eccezioni.
Rimuovere lo stack di chiamate in eccezioni non gestite: fa sì che la finestra stack di chiamate esegua il rollback dello stack di chiamate al punto prima che si sia verificata l'eccezione non gestita.
Usare un modo sperimentale per avviare il debug JavaScript di Chrome durante l'esecuzione di Visual Studio come amministratore: indica a Visual Studio di provare un nuovo modo per avviare Chrome durante il debug di JavaScript.
Avvisa se non sono presenti simboli all'avvio (solo nativo): visualizza una finestra di dialogo di avviso quando si esegue il debug di un programma per cui il debugger non dispone di informazioni sui simboli.
Avvisa se il debug di script è disabilitato all'avvio: visualizza una finestra di dialogo di avviso quando il debugger viene avviato con il debug di script disabilitato.
Usa modalità di compatibilità gestita: quando questa opzione è selezionata, il debugger usa il debugger gestito di Visual Studio 2010, necessario quando si esegue il debug del codice C++/CLI.
Usa modalità di compatibilità nativa: quando questa opzione è selezionata, il debugger usa il debugger nativo di Visual Studio 2010 anziché il nuovo debugger nativo.
- Usare questa opzione quando si esegue il debug di codice C++ .NET, perché il nuovo motore di debug non supporta la valutazione delle espressioni C++ .NET. Tuttavia, l'abilitazione della modalità di compatibilità nativa disabilita molte funzionalità che dipendono dall'implementazione corrente del debugger per funzionare. Ad esempio, il motore legacy non dispone di molti visualizzatori per tipi predefiniti come
std::string
nei progetti di Visual Studio 2015. Usare i progetti di Visual Studio 2013 per un'esperienza di debug ottimale in questi casi.