Informazioni del debugger Transact-SQL
Si applica a: SQL Server
Ogni volta che l'esecuzione viene sospesa dal debugger in corrispondenza di un'istruzione Transact-SQL specifica, è possibile usare le varie finestre del debugger per visualizzare lo stato corrente dell'esecuzione.
Finestre del debugger
In modalità debugger, il debugger apre le finestre accanto alla finestra Editor di query. Nelle finestre selezionate, vengono fornite tutte le informazioni del debugger. Ciascuna finestra dispone di schede che è possibile selezionare per controllare il set di informazioni che viene visualizzato nella finestra. Le schede Stack di chiamate, Punti di interruzione, Impostazioni eccezioni e Output sono contenute in una finestra. Le schede Watch1, Watch2, Watch3 e Watch4 sono contenute in una finestra. Le finestre Thread e Variabili locali vengono visualizzate separatamente.
Nota
Le descrizioni precedenti indicano le posizioni predefinite delle finestre del debugger. È possibile trascinare una scheda per spostarla da una finestra all'altra oppure è possibile disancorare una scheda per creare una nuova finestra per le schede selezionate.
Per impostazione predefinita, non tutte queste schede o finestre sono attive. Per aprire una finestra specifica, scegliere Windows dal menu Debug e quindi selezionare la finestra da visualizzare.
Espressioni di Transact-SQL
Le espressioni sono clausole Transact-SQL che restituiscono un singolo valore scalare, ad esempio variabili o parametri. La finestra del debugger può visualizzare i valori di dati attualmente assegnati a espressioni in massimo cinque schede o finestre: Variabili locali, Espressione di controllo1, Espressione di controllo2, Espressione di controllo3 ed Espressione di controllo4.
La finestra Variabili locali visualizza informazioni sulle variabili locali nell'ambito corrente del debugger Transact-SQL. Il set di espressioni elencate nella finestra Variabili locali cambia man mano che il debugger viene eseguito sulle varie parti del codice.
Le espressioni incluse nelle quattro finestre Espressione di controllo non si limitano semplicemente a elencare l'identificatore di una variabile. È possibile specificare un'espressione Transact-SQL che restituisce un valore singolo, ad esempio l'aggiunta di un numero a una variabile, oppure un'istruzione SELECT che restituisce un valore singolo. Alcuni esempi:
Nome di una variabile, ad esempio @IntegerCounter.
Operazione aritmetica in una variabile, ad esempio @IntegerCounter + 1.
Operazione di stringa in due variabili di carattere, ad esempio @FirstName + @LastName.
Istruzione SELECT che restituisce un valore singolo, ad esempio SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.
Le quattro finestre Espressione di controllo visualizzano informazioni relative alle variabili e alle espressioni selezionate. Il set di espressioni elencate nelle finestre Espressione di controllo non cambia fintanto che non vengono aggiunte o eliminate espressioni nell'elenco.
Per aggiungere un'espressione a una finestra Espressione di controllo, immette il nome dell'espressione nella colonna Nome di una riga vuota in una finestra Espressione di controllo. È anche possibile selezionare Controllo immediato dal menu Debug, immettere un'espressione e quindi selezionare Aggiungi espressione di controllo.
È possibile impostare i valori dei dati per le variabili nelle finestre Variabili locali, Espressione di controlloo Controllo immediato facendo clic con il pulsante destro del mouse nella riga e selezionando quindi Modifica valore. Le colonne Valore nelle finestre Variabili locali ed Espressione di controllo e nella finestra di dialogo Controllo immediato supportano tutte i visualizzatori di testo e di dati XML e HTML. I visualizzatori sono rappresentati da finestre di suggerimenti dati a forma di lente di ingrandimento sul lato destro della colonna Valori . È possibile utilizzare i visualizzatori per visualizzare valori di dati in formato testo, XML o HTML in visualizzazioni che corrispondono ai tipi di dati, ad esempio, per visualizzare file XML in una finestra del browser.
In modalità debug, se si sposta il puntatore del mouse su un identificatore, viene visualizzata una finestra popup di informazioni rapide con il nome dell'espressione e il relativo valore corrente. Per altre informazioni, vedere Informazioni rapide (IntelliSense).
Punti di interruzione
È possibile usare la finestra Punti di interruzione per visualizzare e gestire i punti di interruzione. Per altre informazioni, vedere Esecuzione istruzione per istruzione del codice Transact-SQL.
Stack di chiamate
Nella finestra Stack di chiamate vengono visualizzate la posizione di esecuzione corrente e informazioni sulla modalità con cui l'esecuzione passa dalla finestra dell'editor originale attraverso qualsiasi modulo Transact-SQL (funzione, stored procedure o trigger) per raggiungere la posizione di esecuzione corrente. Ciascuna riga nella finestra Stack di chiamate è chiamata stack frame e rappresenta uno qualsiasi degli elementi seguenti:
Il percorso di esecuzione corrente.
Una chiamata da un modulo a un altro.
Una chiamata da una finestra dell'editor a un modulo Transact-SQL.
L'ordine dello stack è inverso rispetto all'ordine di chiamata dei moduli. La posizione di esecuzione corrente si trova in cima allo stack, mentre la chiamata originale si trova in fondo. Una freccia gialla sul margine sinistro dello stack frame identifica il frame nel quale il debugger ha sospeso l'esecuzione.
Nella colonna Nome sono registrate le informazioni seguenti:
Il modulo di origine che contiene la riga di codice che ha eseguito la chiamata al livello successivo.
La riga di codice che ha chiamato il modulo successivo nello stack.
Se la chiamata è diretta a una stored procedure o una funzione che accetta parametri, vengono elencati anche i nomi, i tipi di dati e i valori di tutti i parametri.
Le espressioni nelle finestre Variabili locali e Espressione di controllo, e Controllo immediato vengono valutate per lo stack frame corrente. Per impostazione predefinita, lo stack frame corrente è il frame in cima allo stack, dove il debugger ha sospeso l'esecuzione. Se si specifica un altro stack frame come frame corrente, le espressioni nelle finestre Variabili locali, Espressione di controlloe Controllo immediato vengono rivalutate per il nuovo stack frame. È possibile cambiare lo stack frame corrente facendo doppio clic su un frame oppure facendo clic su un frame e selezionando Passa al frame. A questo punto, le espressioni nelle finestre Variabili locali, Espressione di controlloe Controllo immediato vengono rivalutate per il nuovo frame. La presenza di una freccia verde sul margine sinistro dello stack frame identifica lo stack frame corrente, nei casi in cui lo stack frame corrente non è quello in cima allo stack.
Quando si fa clic con il pulsante destro del mouse su uno stack frame e si seleziona Vai a codice sorgente, il codice per quel frame viene visualizzato in una finestra dell'editor di query. Quel frame tuttavia non diventa il frame corrente e il contenuto delle finestre Variabili locali, Espressione di controlloe Controllo immediato non cambia.
Informazioni di sistema e risultati di Transact-SQL
I messaggi di stato e di evento del debugger vengono elencati nella finestra Output del debugger. Tra le informazioni visualizzate nella finestra vi sono ad esempio il collegamento del debugger ad altri processi o il termine dei 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 dei risultati delle istruzioni Transact-SQL che vengono eseguite durante una sessione di debug. La scheda Messaggi continua a visualizzare i messaggi di sistema, ad esempio il numero di righe interessate e l'output delle istruzioni PRINT e RAISERROR.