Debugowanie w czasie projektowania w programie Visual Studio (C#, C++/CLI, Visual Basic, F#)

Aby debugować kod w czasie projektowania zamiast podczas działania aplikacji, możesz użyć okna Natychmiastowe .

Aby debugować kod XAML za aplikacją z projektanta XAML, takiego jak scenariusze deklaratywnego powiązania danych, możesz użyć dołączania debugowania>do procesu.

Korzystanie z okna natychmiastowego

Możesz użyć okna natychmiastowego programu Visual Studio, aby wykonać funkcję lub podroutine bez uruchamiania aplikacji. Jeśli funkcja lub podroutyna zawiera punkt przerwania, program Visual Studio zostanie przerwany w punkcie przerwania. Następnie możesz użyć okien debugera do zbadania stanu programu. Ta funkcja jest nazywana debugowaniem w czasie projektowania.

Poniższy przykład dotyczy języka Visual Basic. Możesz również użyć okna natychmiastowego w czasie projektowania w aplikacjach C#, F# i C++/CLI. W przypadku języka C++/CLI skompiluj bez opcji /clr, aby użyć okna natychmiastowego.

  1. Wklej następujący kod do pustej aplikacji konsolowej Visual Basic:

    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. Ustaw punkt przerwania w funkcji końcowej wiersza.

  3. Otwórz okno Natychmiastowe, wybierając pozycję Debuguj>natychmiast systemu Windows.> Wpisz ?MyFunction w oknie, a następnie naciśnij klawisz Enter.

    Punkt przerwania jest trafiony, a wartość MyFunction w oknie Ustawienia lokalne to 1. Możesz sprawdzić stos wywołań i inne okna debugowania, gdy aplikacja jest w trybie przerwania.

  4. Wybierz pozycję Kontynuuj na pasku narzędzi programu Visual Studio. Aplikacja zostanie zakończona, a wartość 1 zostanie zwrócona w oknie Natychmiastowy . Upewnij się, że nadal jesteś w trybie projektowania.

  5. Wpisz ?MyFunction ponownie okno Natychmiastowe i naciśnij klawisz Enter. Punkt przerwania jest trafiony, a wartość MyFunction w oknie Ustawienia lokalne wynosi 2.

  6. Bez wybrania pozycji Kontynuuj wpisz ?MySub()w oknie Natychmiastowe , a następnie naciśnij klawisz Enter. Punkt przerwania jest trafiony, a wartość MyFunction w oknie Ustawienia lokalne to 3. Stan aplikacji można sprawdzić, gdy aplikacja jest w trybie przerwania.

  7. Wybierz Kontynuuj. Punkt przerwania zostanie ponownie trafiony, a wartość MyFunction w oknie Ustawienia lokalne wynosi teraz 2. Okno Natychmiastowe zwraca wyrażenie zostało obliczone i nie ma wartości.

  8. Ponownie wybierz pozycję Kontynuuj . Aplikacja zostanie zakończona, a wartość 2 zostanie zwrócona w oknie Natychmiastowy . Upewnij się, że nadal jesteś w trybie projektowania.

  9. Aby wyczyścić zawartość okna Natychmiastowe, kliknij prawym przyciskiem myszy okno i wybierz polecenie Wyczyść wszystko.

Debugowanie niestandardowej kontrolki XAML w czasie projektowania przez dołączenie do projektanta XAML

  1. Otwórz rozwiązanie lub projekt w programie Visual Studio.

  2. Skompiluj rozwiązanie/projekt.

  3. Otwórz stronę XAML zawierającą kontrolkę niestandardową, którą chcesz debugować.

    W przypadku projektów platformy UWP przeznaczonych dla kompilacji systemu Windows 16299 lub nowszej ten krok spowoduje uruchomienie procesu UwpSurface.exe . W przypadku projektów WPF przeznaczonych dla kompilacji systemu Windows 16299 lub nowszej ten krok spowoduje uruchomienie procesu WpfSurface.exe . W przypadku wersji WPF lub UWP przed kompilacją systemu Windows 16299 ten krok spowoduje uruchomienie procesu XDesProc.exe .

  4. Otwórz drugie wystąpienie programu Visual Studio. Nie otwieraj rozwiązania ani projektu w drugim wystąpieniu.

  5. W drugim wystąpieniu programu Visual Studio otwórz menu Debuguj i wybierz pozycję Dołącz do procesu....

  6. W zależności od typu projektu (zobacz poprzednie kroki) wybierz proces UwpSurface.exe, WpfSurface.exe lub XDesProc.exe z listy dostępnych procesów.

  7. W polu Dołącz do okna dialogowego Dołączanie do procesu wybierz prawidłowy typ kodu dla kontrolki niestandardowej, którą chcesz debugować.

    Jeśli kontrolka niestandardowa została napisana w języku .NET, wybierz odpowiedni typ kodu platformy .NET, taki jak Managed (CoreCLR). Jeśli kontrolka niestandardowa została napisana w języku C++, wybierz pozycję Natywna.

  8. Dołącz drugie wystąpienie programu Visual Studio, klikając przycisk Dołącz .

  9. W drugim wystąpieniu programu Visual Studio otwórz pliki kodu skojarzone z kontrolką niestandardową, którą chcesz debugować. Pamiętaj, aby po prostu otworzyć pliki, a nie całe rozwiązanie lub projekt.

  10. Umieść niezbędne punkty przerwania w wcześniej otwartych plikach.

  11. W pierwszym wystąpieniu programu Visual Studio zamknij stronę XAML zawierającą kontrolkę niestandardową, którą chcesz debugować (ta sama strona została otwarta we wcześniejszych krokach).

  12. W pierwszym wystąpieniu programu Visual Studio otwórz stronę XAML zamkniętą w poprzednim kroku. Spowoduje to zatrzymanie debugera w pierwszym punkcie przerwania ustawionym w drugim wystąpieniu programu Visual Studio.

  13. Debuguj kod w drugim wystąpieniu programu Visual Studio.