Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni volta che il debugger sospende l'esecuzione su un'istruzione Transact-SQL specifica, è possibile usare le varie finestre del debugger per visualizzare lo stato di esecuzione corrente.
Finestre del debugger
In modalità debugger il debugger apre due finestre nella parte inferiore della finestra principale di SQL Server Management Studio. Il debugger visualizza tutte le relative informazioni in queste due finestre. Ogni finestra del debugger include schede che è possibile selezionare per controllare il set di informazioni visualizzato nella finestra. La finestra del debugger a sinistra contiene le schede Variabili locali, Watch1, Watch2, Watch3 e Watch4 . La finestra del debugger a destra contiene le schede Stack chiamate, Thread, Punti di interruzione, Finestra di comando e Output.
Annotazioni
Le descrizioni precedenti si applicano ai percorsi predefiniti delle finestre del debugger. È possibile trascinare una scheda per spostarla da una finestra a un'altra oppure scollegare una scheda per creare una nuova finestra che è possibile inserire ovunque si desideri.
Per impostazione predefinita, non tutte queste schede o finestre sono attive. È possibile aprire una finestra specifica usando uno dei modi seguenti:
Scegliere Windows dal menu Debug e quindi selezionare la finestra desiderata.
Sulla barra degli strumenti Debug fare clic su Punti di interruzione e quindi selezionare la finestra desiderata.
espressioni Transact-SQL
Le espressioni sono clausole Transact-SQL che restituiscono un singolo valore scalare, ad esempio variabili o parametri. La finestra del debugger a sinistra può visualizzare i valori dei dati attualmente assegnati alle espressioni in un massimo di cinque schede o finestre: Variabili locali, Watch1, Watch2, Watch3 e Watch4.
Nella finestra Variabili locali vengono visualizzate informazioni sulle variabili locali nell'ambito corrente del debugger Transact-SQL. L'insieme di espressioni elencate nella finestra Variabili locali cambia mentre il debugger esegue attraverso le diverse parti del codice.
Le espressioni nel QuickWatch e nelle quattro finestre Watch non sono limitate solo all'elenco dell'identificatore di una variabile. È possibile specificare un'espressione Transact-SQL che restituisce un singolo valore, ad esempio l'aggiunta di un numero a una variabile o un'istruzione SELECT che restituisce un singolo valore. Gli esempi includono:
Nome di una variabile, ad esempio @IntegerCounter.
Operazione aritmetica su una variabile, ad esempio @IntegerCounter + 1.
Operazione stringa su due variabili di caratteri, ad esempio @FirstName + @LastName.
Istruzione SELECT che restituisce un singolo valore, ad esempio SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.
È possibile usare la finestra Controllo immediato per visualizzare il valore di un'espressione Transact-SQL e quindi salvare tale espressione in una finestra Espressione di controllo . Per selezionare un'espressione in Controllo immediato, selezionare o immettere il nome dell'espressione nella casella Espressione .
Le quattro finestre Watch visualizzano informazioni sulle variabili e le espressioni che hai selezionato. Il set di espressioni elencato nelle finestre Osservazione non cambia finché non si aggiungono o si eliminano espressioni dall'elenco.
Per aggiungere un'espressione a una finestra Watch, è possibile selezionare Aggiungi Watch nella finestra di dialogo QuickWatch, oppure immettere il nome dell'espressione nella colonna Nome di una riga vuota in una finestra Watch.
È possibile impostare i valori dei dati per le variabili nelle finestre Variabili locali, Espressione di controllo o Controllo immediato facendo clic con il pulsante destro del mouse sulla riga e quindi scegliendo Modifica valore. Le colonne Valore nella finestra Variabili locali, nella finestra Watch e nella finestra di dialogo QuickWatch supportano visualizzatori di dati di testo, XML e HTML. I visualizzatori sono rappresentati da una descrizione dati con lente di ingrandimento sul lato destro della colonna Valori . È possibile utilizzare i visualizzatori per visualizzare i valori di dati text, XML o HTML in visualizzati che corrispondono ai tipi di dati, ad esempio visualizzando i file XML in una finestra del browser.
In modalità debug, quando si sposta il puntatore del mouse su un identificatore, viene visualizzato un popup Informazioni rapide con il nome dell'espressione e il relativo valore corrente. Per altre informazioni, vedere Informazioni rapide (IntelliSense).
Punti di interruzione
È possibile utilizzare la finestra Punti di interruzione per visualizzare e gestire i punti di interruzione attualmente impostati. Per altre informazioni, vedere Procedura dettagliata Transact-SQL codice.
Stack di chiamate
La finestra Stack di chiamate visualizza la posizione corrente di esecuzione e le informazioni su come l'esecuzione è passata dalla finestra dell'editor originale attraverso qualsiasi modulo di Transact-SQL (funzioni, stored procedure o trigger) per raggiungere tale posizione corrente di esecuzione. Ogni riga nella finestra Stack di chiamate è denominata stack frame e rappresenta uno degli elementi seguenti:
Posizione di esecuzione corrente.
Chiamata da un modulo a un altro.
Chiamata da una finestra dell'editor a un modulo Transact-SQL.
L'ordine dello stack è il contrario di quello in cui sono stati chiamati i moduli. La posizione di esecuzione corrente si trova nella parte superiore dello stack e la chiamata originale nella parte inferiore. Una freccia gialla sul margine sinistro del frame dello stack identifica il frame in cui il debugger ha sospeso l'esecuzione.
La colonna Name registra le informazioni seguenti:
Modulo di origine che contiene la riga di codice che ha invocato al livello successivo.
La riga di codice che ha chiamato il modulo successivo nello stack.
Se la chiamata passi a una stored procedure o a una funzione che accetta parametri, vengono elencati anche nomi, tipi di dati e valori di tutti i parametri.
Le espressioni nelle finestre Locals, Watch e QuickWatch vengono valutate per il frame dello stack corrente. Per impostazione predefinita, lo stack frame corrente è il frame superiore nello stack, in cui il debugger ha sospeso l'esecuzione. Quando si specifica un altro stack frame come frame attuale, le espressioni nelle finestre Variabili locali, Osservazioni e Controllo immediato vengono rivalutate per il nuovo stack frame. È possibile modificare lo stack frame corrente facendo doppio clic su un frame o facendo clic su un frame e selezionando Passa a frame. A questo punto, le espressioni nelle finestre Variabili locali, Osserva e Osservazione rapida vengono rivalutate per il nuovo frame. Ogni volta che il frame dello stack corrente non è il frame in cima allo stack, una freccia verde sul margine sinistro del frame dello stack identifica il frame corrente.
Quando si fa clic con il pulsante destro del mouse su uno stack frame e si seleziona Vai al codice sorgente, il codice per tale frame viene visualizzato in una finestra dell'editor di query. Tuttavia, tale frame non viene reso il frame corrente e il contenuto delle finestre Variabili locali, Osserva e Osservazione rapida non vengono modificati.
Informazioni di sistema e risultati Transact-SQL
Il debugger elenca i messaggi relativi allo stato e agli eventi nella finestra Output . Sono incluse informazioni come quando il debugger si collega ad altri processi o quando terminano i thread del debugger.
In modalità di debug, le schede Risultati e Messaggi sono ancora attive nell'editor di query. La scheda Risultati continua a visualizzare i set di risultati delle istruzioni Transact-SQL eseguite durante una sessione di debug. La scheda Messaggi visualizza continuamente i messaggi di sistema, ad esempio il numero di xx righe interessate e l'output delle istruzioni PRINT e RAISERROR.
Vedere anche
Finestra Locali
Finestra di Osservazione
Finestra di dialogo Controllo immediato
Finestra punti di interruzione
Finestra Stack di chiamate
Finestra Thread
Finestra output
Transact-SQL debugger