Debug dei NetLogic¶
Introduzione
Questo modulo descrive alcune procedure di base per individuare, approfondire e correggere eventuali problemi nel codice dei NetLogic tramite Microsoft Visual Studio o Visual Studio Code in locale. Per il debug remoto vedere Debug remoto di NetLogic di runtime.
Nota
le schermate di esempio sono riferite a Visual Studio, impostato in lingua inglese.
Gli errori dei NetLogic sono segnalati a runtime nel pannello dei log di Q Studio. In particolare, gli errori dei NetLogic di runtime sono riportati nella scheda del target su cui si esegue l’applicazione (per esempio Emulator Output), gli errori dei NetLogic di design time sono riportati nella scheda Q Studio Output.
Per installare Visual Studio o Visual Studio Code, o per riferimenti su tutte le relative funzionalità di debug, fare riferimento al sito web di Microsoft.
Prerequisiti
Per il debug di NetLogic di runtime è necessario che il progetto sia in esecuzione. Tipicamente, per scopi di debug il progetto si esegue sul target Emulator.
Per il debug tramite Visual Studio Code, è necessario installare l’estensione C# di Microsoft (disponibile a questo link). Si consiglia inoltre di installare l’estensione vscode-solution-explorer (disponibile a questo link) per navigare nella cartella di progetto in modo simile a Visual Studio.
Macro procedura
Impostare il debug
Fare clic su
: si apre il progetto C# in Visual Studio o Visual Studio Code, a seconda dell’editor predefinito (vedere Impostare l’editor di codice predefinito).
(Solo per debug di NetLogic di runtime) In Q Studio fare clic su
per compilare ed eseguire la Q Application.
Impostare il debug:
Se si usa…
Allora…
Visual Studio
Nel menu Debug fare clic su Attach to Process: compare una finestra che mostra tutti i processi in esecuzione sulla macchina.
In Attach to fare clic su Select, selezionare Managed (v4.6, v4.5, v4.0) e fare clic su OK.
In Available Process selezionare il processo QRuntime.exe per il debug di NetLogic di runtime oppure QStudio.exe per il debug di NetLogic di design time.
Fare clic su Attach: si entra in modalità debug e la barra inferiore diventa arancione.
Inserire uno o più punti di interruzione (vedere Usare i punti di interruzione), per indicare le righe del codice in cui l’esecuzione si ferma per permettere all’utente di verificarne lo stato, il contenuto delle variabili ecc.
Visual Studio Code
Aprire la vista Run (CTRL+MAIUSC+D).
Nel menu a discesa RUN selezionare Attach to QRuntime per il debug di NetLogic di runtime oppure Attach to QStudio per il debug di NetLogic di design time.
Usare i punti di interruzione
Per impostare un punto di interruzione, fare clic sulla colonna a sinistra del numero di riga: compare un indicatore.
Per rimuovere un punto di interruzione, fare clic sull’indicatore.
Di seguito un esempio di Visual Studio:

Nota
i punti di interruzione non possono essere impostati su righe vuote
A tempo di esecuzione, l’indicatore segnala quando l’esecuzione è ferma sulla riga. Di seguito un esempio di Visual Studio:

Avviare il debug
In Visual Studio o Visual Studio Code, in modalità debug aprire il/i NetLogic da verificare e, a seconda che si tratti di NetLogic di runtime o design time, fare come di seguito:
Se il NetLogic è…
Allora…
di runtime
premere F5: viene avviata l’esecuzione del codice, che si ferma al primo punto di interruzione.
di design time
in Q Studio, fare clic con il pulsante destro del mouse sul NetLogic desiderato, poi fare clic sul metodo da eseguire: viene avviata l’esecuzione del codice, che si ferma al primo punto di interruzione.
Nella scheda Locals in Visual Studio, o nella scheda VARIABLES in Visual Studio Code, sono elencati gli oggetti e le variabili locali del contesto di esecuzione. Per ogni variabile sono riportati i valori correnti e il loro tipo. Nell’esempio, gli elementi mostrati nella scheda Locals sono riferiti al contesto del metodo
AddTwoNumbers()
.È possibile espandere gli elementi che contengono proprietà, per visualizzarne valori e tipi di dati/oggetti. Di seguito un esempio:
Per proseguire l’esecuzione del codice della riga successiva premere F10.
Per proseguire l’esecuzione del codice fino al successivo punto di interruzione premere F5.
Ripetere i passi 3 e 4 i fino al completamento del debug.
Modificare il codice dopo il debug
Interrompere il debug:
Se il/i NetLogic sono…
Allora…
di runtime
in Q Studio fare clic su
per fermare l’esecuzione del progetto e per interrompere il debug.
di design time
in Visual Studio o Visual Studio Code premere MAIUSC+F5 per interrompere il debug.
Modificare il codice e salvare i file .cs modificati: Q Studio ricompila automaticamente la soluzione .NET.
Avviare il debug dopo una modifica al codice
(Solo per debug di NetLogic di runtime o se si creano nuovi tipi custom nel progetto) In Q Studio fare clic su
per compilare ed eseguire la Q Application.
A seconda che si usi Visual Studio o Visual Studio Code fare come di seguito:
Se si usa…
Allora…
Visual Studio
Nel menu Debug fare clic su Reattach to Process: viene selezionato automaticamente il processo selezionato nella precedente sessione di debug e si entra in modalità di debug.
Importante
se tra il precedente debug e il successivo è stato chiuso Visual Studio, è necessario fare clic su Attach to Process e reimpostare il collegamento (vedere Impostare il debug).
Visual Studio Code
Aprire la vista Run (CTRL+MAIUSC+D).
Nel menu a discesa RUN selezionare Attach to QRuntime per il debug di NetLogic di runtime oppure Attach to QStudio per il debug di NetLogic di design time.
Importante
se nei debug successivi al primo Visual Studio Code ignora i punti di interruzione, riavviare Visual Studio Code e ripetere questa procedura.
Aprire il NetLogic da verificare e, a seconda che si tratti di NetLogic di runtime o design time, fare come di seguito:
Se il NetLogic è…
Allora…
di runtime
premere F5: viene avviata l’esecuzione del codice, che si ferma al primo punto di interruzione.
di design time
in Q Studio, fare clic con il pulsante destro del mouse sul NetLogic desiderato, poi fare clic sul metodo da eseguire: viene avviata l’esecuzione del codice, che si ferma al primo punto di interruzione.