Condividi tramite


Eseguire il debug in fase di progettazione in Visual Studio (C#, C++/CLI, Visual Basic, F#)

Per eseguire il debug del codice in fase di progettazione anziché durante l'esecuzione di un'app, è possibile usare la finestra Immediata .

Per eseguire il debug del codice XAML dietro un'app dalla finestra di progettazione XAML, ad esempio scenari di data binding dichiarativi, puoi usare Debug>Attach to Process.

Usare la finestra Immediata

È possibile usare la finestra Immediata di Visual Studio per eseguire una funzione o una subroutine senza eseguire l'app. Se la funzione o la subroutine contiene un punto di interruzione, Visual Studio si interromperà nel punto di interruzione. È quindi possibile usare le finestre del debugger per esaminare lo stato del programma. Questa funzionalità è denominata debug in fase di progettazione.

L'esempio seguente è in Visual Basic. È anche possibile usare la finestra Immediata in fase di progettazione nelle app C#, F# e C++/CLI. Per C++/CLI, compilare senza l'opzione /clr per usare la finestra Immediata.

  1. Incollare il codice seguente in un'app console visual Basic vuota:

    Module Module1
    
        Sub Main()
            MySub()
        End Sub
    
        Function MyFunction() As Decimal
            Static i As Integer
            i = i + 1
            Return i
        End Function
    
        Sub MySub()
            MyFunction()
    
        End Sub
    End Module
    
  2. Impostare un punto di interruzione nella funzione finale della riga.

  3. Aprire la finestra Immediata selezionando Debug>immediato di Windows.> Digitare ?MyFunction nella finestra e quindi premere INVIO.

    Viene raggiunto il punto di interruzione e il valore di MyFunction nella finestra Variabili locali è 1. È possibile esaminare lo stack di chiamate e altre finestre di debug mentre l'app è in modalità di interruzione.

  4. Selezionare Continua sulla barra degli strumenti di Visual Studio. L'app termina e 1 viene restituito nella finestra Immediata . Assicurarsi di essere ancora in modalità progettazione.

  5. Digitare ?MyFunction di nuovo nella finestra Immediata e premere INVIO. Viene raggiunto il punto di interruzione e il valore di MyFunction nella finestra Variabili locali è 2.

  6. Senza selezionare Continua, digitare ?MySub() nella finestra Immediata e quindi premere INVIO. Viene raggiunto il punto di interruzione e il valore di MyFunction nella finestra Variabili locali è 3. È possibile esaminare lo stato dell'app mentre l'app è in modalità di interruzione.

  7. Selezionare Continua. Il punto di interruzione viene nuovamente raggiunto e il valore di MyFunction nella finestra Variabili locali è ora 2. La finestra Immediata restituisce Expression è stata valutata e non ha alcun valore.

  8. Selezionare di nuovo Continua . L'app termina e 2 viene restituito nella finestra Immediata . Assicurarsi di essere ancora in modalità progettazione.

  9. Per cancellare il contenuto della finestra Immediata , fare clic con il pulsante destro del mouse nella finestra e scegliere Cancella tutto.

Eseguire il debug di un controllo XAML personalizzato in fase di progettazione connettendosi alla finestra di progettazione XAML

  1. Aprire la soluzione o il progetto in Visual Studio.

  2. Compilare la soluzione o il progetto.

  3. Aprire la pagina XAML contenente il controllo personalizzato di cui si vuole eseguire il debug.

    Per i progetti UWP destinati a Windows build 16299 o versione successiva, questo passaggio avvierà il processo UwpSurface.exe . Per i progetti WPF destinati a Windows build 16299 o versione successiva, questo passaggio avvierà il processo WpfSurface.exe . Per le versioni wpf o UWP precedenti a Windows build 16299, questo passaggio avvierà il processo XDesProc.exe .

  4. Aprire una seconda istanza di Visual Studio. Non aprire una soluzione o un progetto nella seconda istanza.

  5. Nella seconda istanza di Visual Studio aprire il menu Debug e scegliere Connetti a processo.

  6. A seconda del tipo di progetto (vedere i passaggi precedenti), selezionare il file UwpSurface.exe, WpfSurface.exe o il processo XDesProc.exe dall'elenco dei processi disponibili.

  7. Nel campo Connetti a della finestra di dialogo Connetti a processo scegliere il tipo di codice corretto per il controllo personalizzato di cui si vuole eseguire il debug.

    Se il controllo personalizzato è stato scritto in un linguaggio .NET, scegliere il tipo di codice .NET appropriato, ad esempio Managed (CoreCLR). Se il controllo personalizzato è stato scritto in C++, scegliere Nativo.

  8. Collegare la seconda istanza di Visual Studio facendo clic sul pulsante Collega .

  9. Nella seconda istanza di Visual Studio aprire i file di codice associati al controllo personalizzato di cui si vuole eseguire il debug. Assicurarsi di aprire solo i file, non l'intera soluzione o l'intero progetto.

  10. Posizionare i punti di interruzione necessari nei file aperti in precedenza.

  11. Nella prima istanza di Visual Studio chiudere la pagina XAML contenente il controllo personalizzato di cui si vuole eseguire il debug (la stessa pagina aperta nei passaggi precedenti).

  12. Nella prima istanza di Visual Studio aprire la pagina XAML chiusa nel passaggio precedente. In questo modo il debugger verrà arrestato al primo punto di interruzione impostato nella seconda istanza di Visual Studio.

  13. Eseguire il debug del codice nella seconda istanza di Visual Studio.