Opzioni generali di debug
Per impostare le opzioni del debugger di Visual Studio, selezionare Opzioni strumenti>e in Debug selezionare o deselezionare le caselle accanto alle opzioni Generale. È possibile ripristinare tutte le impostazioni predefinite con Strumenti>Importazione ed Esportazione Impostazioni> Impostare tutte le impostazioni. Per reimpostare un subset di impostazioni, salvare le impostazioni con l'Importazione/Esportazione guidata Impostazioni prima di apportare le modifiche da testare, quindi importare le impostazioni salvate in un secondo momento.
È possibile impostare le opzioni generali seguenti:
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 si interrompe un processo: interrompe simultaneamente tutti i processi a cui è collegato il debugger, quando si verifica un'interruzione.
Interruzione quando le eccezioni superano i limiti di AppDomain o gestiti/nativi: nel debug in modalità gestita o mista, Common Language Runtime può intercettare eccezioni che superano i limiti del dominio applicazione o i limiti gestiti/nativi quando vengono soddisfatte le condizioni seguenti:
Quando il codice nativo chiama il 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 il codice gestito presente nel dominio applicazione 2 e il codice nel dominio applicazione 2 genera un'eccezione. Vedere Programmazione con i domini 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 di eccezioni intercettate da mscorlib
.
Abilita 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 degli indirizzi).
- 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.
Abilita filtri punto di interruzione: consente di impostare filtri in punti di interruzione in modo che influiscano solo su processi, thread o computer specifici.
Usare il nuovo helper eccezioni: abilita l'helper eccezioni che sostituisce l'assistente eccezioni. (Helper eccezioni è supportato a partire da Visual Studio 2017)
Nota
Per il codice gestito, questa opzione era precedentemente denominata Abilita assistente eccezioni .
Abilita 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 all'avvio non è presente codice utente (solo gestito): quando il debug inizia con Just My Code abilitato, questa opzione avvisa se non è presente codice utente ("Codice personale").
Abilitare l'istruzione dell'origine .NET Framework: consente al debugger di eseguire l'istruzione nell'origine .NET Framework. L'abilitazione di questa opzione disabilita automaticamente Just My Code. I simboli di .NET Framework verranno scaricati in un percorso della cache. Modificare il percorso della cache con la finestra di dialogo Opzioni , categoria Debug , pagina Simboli .
Eseguire il passaggio su proprietà e operatori (solo gestiti): impedisce al debugger di eseguire istruzioni 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 le chiamate di funzione implicite nelle finestre delle variabili e nella finestra di dialogo Controllo immediato.
- Call string conversion function on objects in variables windows (solo C# e JavaScript): esegue una chiamata di conversione di stringa implicita durante la valutazione degli oggetti nelle finestre delle variabili. Il risultato viene visualizzato come stringa anziché come nome del tipo. Questa opzione è applicabile solo al debug in 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 di SrcSrv . Vedere anche Specificare i file di simboli (con estensione pdb) e di origine.
Importante
Poiché la lettura dei file PDB può determinare l'esecuzione del codice arbitrario nei file, assicurarsi di ritenere attendibile il server.
Stampare i messaggi di diagnostica del server di origine nella finestra Output: quando il supporto del server di origine è abilitato, questa impostazione attiva la visualizzazione diagnostica.
Consenti server di origine per assembly con attendibilità parziale (solo gestito): quando il supporto del server di origine è abilitato, questa impostazione sostituisce il comportamento predefinito di non recuperare le origini per assembly di attendibilità parziale.
Eseguire sempre comandi server di origine non attendibili senza chiedere conferma: quando il supporto del server di origine è abilitato, questa impostazione sostituisce il comportamento predefinito della richiesta quando si esegue un comando non attendibile.
Abilita supporto collegamento origine: indica al debugger di Visual Studio di scaricare i file di origine per i file con estensione pdb che contengono informazioni sul collegamento all'origine. Per altre informazioni sul collegamento all'origine, vedere la specifica del collegamento di origine.
Importante
Poiché il collegamento di origine scaricherà i file usando http o https, assicurarsi di considerare attendibile il file con estensione pdb .
- Eseguire il fallback all'autenticazione di Git Credential Manager per tutte le richieste di collegamento di origine: quando il supporto del collegamento di origine è abilitato e una richiesta di collegamento di origine ha esito negativo, Visual Studio chiama Git Credential Manager.
Evidenziare 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 la ricerca ha esito negativo, il codice sorgente non verrà visualizzato durante il debug.
Reindirizza tutto il testo della finestra output alla finestra Immediata: invia tutti i messaggi del debugger che normalmente vengono visualizzati nella finestra Output alla finestra Immediata.
Mostra struttura non elaborata degli oggetti nelle finestre delle variabili: disattiva tutte le personalizzazioni della visualizzazione struttura di oggetti. Per altre informazioni sulle personalizzazioni della visualizzazione, vedere Creare visualizzazioni personalizzate di oggetti gestiti.
Elimina 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 JIT può semplificare il debug di determinati errori, anche se può avere effetti negativi sulle prestazioni. Se si usa Just My Code e si disattiva l'ottimizzazione JIT, è possibile che il codice non utente venga visualizzato come codice utente ("My Code"). Per altre informazioni, vedere Ottimizzazione e debug JIT.
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.
Caricare le esportazioni dll (solo native): carica le tabelle di esportazione dll. Le informazioni sui simboli delle tabelle di esportazione DLL possono essere utili se usano messaggi Windows, routine Windows (WindowProc), oggetti COM, marshalling o qualsiasi DLL per cui non sono disponibili simboli. La lettura di informazioni di esportazione DLL comporta un sovraccarico. Pertanto questa funzionalità è disattivata per impostazione predefinita.
Per visualizzare i simboli disponibili nella tabella di esportazione di una DLL, usare dumpbin /exports
. I simboli sono disponibili per tutte le DLL di sistema a 32 bit. Leggendo l'output di dumpbin /exports
, è possibile visualizzare il nome esatto della funzione, compresi i caratteri non alfanumerici. Ciò risulta utile per impostare un punto di interruzione su una funzione. I nomi di funzione delle tabelle di esportazione DLL possono apparire troncati in altri punti del debugger. Le chiamate sono elencate nell'ordine di chiamata, con la funzione corrente (al più alto livello di annidamento) all'inizio dell'elenco. Per altre informazioni, vedere dumpbin /exports.
Mostra diagramma stack paralleli in basso: controlla la direzione in cui gli stack vengono visualizzati nella finestra Stack paralleli .
Ignorare le 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 altre informazioni, vedere Debug del codice GPU.
Usa 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.
Abilita l'allocatore heap di debug di Windows (solo nativo): abilita l'heap di debug di Windows per migliorare la diagnostica dell'heap. L'abilitazione di questa opzione influirà sulle prestazioni di debug.
Abilita strumenti di debug dell'interfaccia utente per XAML: la struttura ad albero visuale attiva e le finestre Esplora proprietà live verranno visualizzate quando si avvia il debug (F5) un tipo di progetto supportato. Per altre informazioni, vedere Esaminare le proprietà XAML durante il debug.
Anteprima degli elementi selezionati nella struttura 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 Struttura ad albero visuale attiva in una barra degli strumenti nella finestra principale dell'applicazione XAML di cui è in corso il 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")
Abilita Just My XAML: a partire da Visual Studio 2019 versione 16.4, la struttura ad albero visuale attiva 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 un elemento è selezionato A partire da Visual Studio 2019 versione 16.4, il pulsante di selezione 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 salvi il documento.
Abilita strumenti di diagnostica durante il debug: viene visualizzata la finestra Strumenti di diagnostica 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 continuazione: abilita la funzionalità Modifica e Continua durante il debug.
Abilita modifica e continuazione nativa: è 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 alla continuazione (solo nativa): Visual Studio compila e applica automaticamente le modifiche di codice in sospeso apportate quando si continua il processo da uno stato di interruzione. Se non è selezionato, è possibile scegliere di applicare le modifiche con il comando Applica modifiche del codice nel menu Debug.
Avvisare del codice non aggiornato (solo nativo): ottenere avvisi relativi al codice non aggiornato.
Mostra pulsante Esegui a clic nell'editor durante il debug: quando questa opzione è selezionata, il pulsante Esegui su clic verrà visualizzato durante il debug.
Chiudere automaticamente la console quando si arresta il debug: 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 ottimizzazione della memoria durante il debug.
Portare Visual Studio in primo piano quando si interrompe l'interruzione nel debugger Passa Visual Studio in primo piano quando si sospende nel debugger.
Mantenere aperti i suggerimenti per i dati espansi fino a quando non si fa clic su di esso Quando questa opzione è selezionata, un suggerimento per i dati espanso rimane espanso fino a quando non si fa clic su di esso.
Opzioni disponibili nelle versioni precedenti di Visual Studio
Se si usa una versione precedente di Visual Studio, potrebbero essere presenti alcune opzioni aggiuntive.
Abilita Strumenti di sviluppo Edge per app JavaScript UWP (sperimentale): 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, l'helper eccezioni ha sostituito l'assistente eccezioni.
Rimuovere lo stack di chiamate in caso di eccezioni non gestite: fa in modo 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 Amministrazione istrator: indica a Visual Studio di provare un nuovo modo per avviare Chrome durante il debug javaScript.
Avvisa se nessun simbolo all'avvio (solo nativo): visualizza una finestra di dialogo di avviso quando si esegue il debug di un programma per il quale 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à 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 il funzionamento. 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.