Visualizzazione delle informazioni del debugger Transact-SQL
Ogni volta che l'esecuzione viene sospesa dal debugger in corrispondenza di un'istruzione Transact-SQL specifica, è possibile utilizzare le varie finestre del debugger per visualizzare lo stato corrente dell'esecuzione.
Finestre del debugger
In modalità di debug, nel debugger vengono aperte due finestre nella parte inferiore della finestra principale di SQL Server Management Studio. In queste due finestre vengono fornite tutte le informazioni del debugger. Ciascuna finestra dispone di schede che è possibile selezionare per controllare il tipo di informazioni che viene visualizzato nella finestra. La finestra di sinistra contiene le schede Variabili locali, Espressione di controllo1, Espressione di controllo2, Espressione di controllo3 ed Espressione di controllo4. La finestra di destra contiene le schede Stack di chiamate, Thread, Punti di interruzione, Finestra di comando e Output.
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 che potrà essere collocata ovunque si desideri.
Per impostazione predefinita, non tutte queste schede o finestre sono attive. È possibile aprire una particolare finestra utilizzando una qualsiasi delle procedure seguenti:
Scegliere Finestre dal menu Debug, quindi selezionare la finestra desiderata.
Fare clic su Punti di interruzione nella barra degli strumenti Debug, quindi selezionare la finestra desiderata.
Espressioni di Transact-SQL
Le espressioni sono clausole Transact-SQL che restituiscono una singola espressione scalare, ad esempio variabili o parametri. La finestra sinistra 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 differenti parti del codice.
Le quattro finestre Espressione di controllo visualizzano informazioni relative alle variabili e alle espressioni che sono state selezionate. Il set di espressioni elencate nelle finestre Espressione di controllo non cambia fintanto che non vengono aggiunte o eliminate delle espressioni dall'elenco.
È possibile utilizzare la finestra Controllo immediato per visualizzare il valore di un'espressione Transact-SQL, quindi salvare quell'espressione in una finestra Espressione di controllo. Per selezionare un'espressione in Controllo immediato, selezionare o immettere il nome dell'espressione nella casella Espressione.
Per aggiungere un'espressione a una finestra Espressione di controllo, è possibile selezionare Aggiungi espressione di controllo nella finestra di dialogo Controllo immediato oppure immette il nome dell'espressione nella colonna Nome di una riga vuota in una finestra Espressione di controllo.
È 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 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 con l'aspetto di lenti di ingrandimento che si trovano 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.
Punti di interruzione
È possibile utilizzare la finestra Punti di interruzione per visualizzare e gestire i punti di interruzione attualmente impostati. Per ulteriori 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, 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 controllo e 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 controllo e 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 controllo e 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 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 gli insiemi dei risultati delle istruzioni Transact-SQL che vengono eseguite durante una sessione di debug. La scheda Messaggi continua a visualizzare messaggi di sistema, ad esempio "Righe interessate xx" e l'output delle istruzioni PRINT e RAISERROR.