Отладка во время разработки в Visual Studio (C#, C++/CLI, Visual Basic, F#)

Для отладки кода во время разработки, а не во время выполнения приложения можно воспользоваться окном Интерпретация.

Для отладки выделенного кода XAML приложения из конструктора XAML, например сценариев декларативной привязки к данным, можно использовать команду Отладка>Присоединить к процессу.

Использование окна "Интерпретация"

Окно Интерпретация в Visual Studio можно использовать для выполнения функции или подпрограммы без запуска приложения. Если в функции или подпрограмме есть точка останова, Visual Studio прервет выполнение в этой точке. При этом можно использовать окна отладчика для просмотра состояния программы. Эта возможность называется отладкой времени разработки.

Этот пример предназначен для Visual Basic. Окно Интерпретация можно также использовать во время разработки в приложениях C#, F# и C++/CLI. Для C++/CLI компилируйте без параметра /clr, чтобы использовать окно Интерпретации.

  1. Вставьте следующий код в пустое консольное приложение 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. Установите точку останова на строке Конец функции.

  3. Откройте окно Интерпретация, выбрав Отладка>Окна>Интерпретация. В окне введите ?MyFunction, а затем нажмите клавишу ВВОД.

    Срабатывает точка останова, и MyFunction в окне Локальные получает значение 1. Вы можете просмотреть стек вызовов и другие окна отладки, пока приложение находится в режиме приостановки выполнения.

  4. На панели инструментов Visual Studio нажмите кнопку Сохранить. Приложение завершается, и в окне Интерпретация возвращается значение 1. Все еще должен быть активен режим конструктора.

  5. Введите ?MyFunction в окне Интерпретация еще раз и нажмите клавишу ВВОД. Срабатывает точка остановка, и MyFunction в окне Локальные получает значение 2.

  6. Не нажимая кнопку Продолжить, введите ?MySub() в окне Интерпретация, а затем нажмите клавишу ВВОД. Срабатывает точка останова, и MyFunction в окне Локальные получает значение 3. Вы можете проверить состояние приложения, пока приложение находится в режиме приостановки выполнения.

  7. Выберите Продолжить. Снова срабатывает точка останова, и теперь MyFunction в окне Локальные получает значение 2. В окне Интерпретация возвращается Выражение вычислено, но оно не имеет значения.

  8. Еще раз нажмите кнопку Продолжить. Приложение завершается, и в окне Интерпретация возвращается значение 2. Все еще должен быть активен режим конструктора.

  9. Чтобы очистить содержимое окна Интерпретация, щелкните правой кнопкой мыши в окне и выберите команду Очистить все.

Отладка пользовательского элемента управления XAML во время разработки путем присоединения к конструктору XAML

  1. Откройте решение или проект в Visual Studio.

  2. Выполните сборку решения или проекта.

  3. Откройте страницу XAML, содержащую пользовательский элемент управления, который требуется отладить.

    В проектах UWP, предназначенных для сборки Windows 16299 или более поздней версии, этот шаг запускает процесс UwpSurface.exe. В проектах WPF, предназначенных для сборки Windows 16299 или более поздней версии, на этом шаге запускается процесс WpfSurface.exe. В версиях WPF или UWP, предшествующих версии сборки Windows 16299, этот шаг запускает процесс XDesProc.exe.

  4. Откройте еще один экземпляр Visual Studio. Не открывайте решение или проект во втором экземпляре.

  5. Во втором экземпляре Visual Studio откройте меню Отладка и выберите Присоединить к процессу....

  6. В зависимости от типа проекта (см. предыдущие шаги) выберите процесс UwpSurface.exe, WpfSurface.exe или XDesProc.exe в списке доступных процессов.

  7. В диалоговом окне Присоединение к процессу в поле Присоединить к выберите нужный тип кода для пользовательского элемента управления, который требуется отладить.

    Если пользовательский элемент управления был написан на языке .NET, выберите соответствующий тип кода .NET, например Управляемый (CoreCLR). Если пользовательский элемент управления был написан в C++, выберите Собственный.

  8. Присоедините второй экземпляр Visual Studio, нажав кнопку Присоединить.

  9. Во втором экземпляре Visual Studio откройте файлы кода, связанные с пользовательским элементом управления, который требуется отладить. Откройте только файлы, а не все решение или проект.

  10. Установите необходимые точки останова в ранее открытых файлах.

  11. В первом экземпляре Visual Studio закройте страницу XAML, содержащую пользовательский элемент управления, который необходимо отладить (та же страница, которая была открыта на предыдущих шагах).

  12. В первом экземпляре Visual Studio откройте страницу XAML, закрытую на предыдущем шаге. Отладчик остановится на первой точке останова, заданной во втором экземпляре Visual Studio.

  13. Выполните отладку кода во втором экземпляре Visual Studio.