- Отладчик Windows (WinDbg) Windows Debugger (WinDbg)
- MinnowBoard Max (МИКРОТЕСТОВ) MinnowBoard Max (MBM)
- Настройка сетевого подключения Setup network connection
- Raspberry Pi 2 или 3 (RPi2 или RPi3) Raspberry Pi 2 or 3 (RPi2 or RPi3)
- Настройка последовательного подключения Setup serial connection
- Драгонбоард (DB) DragonBoard (DB)
- Настройка USB-подключения Setup USB connection
- Настройка последовательного подключения Setup serial connection
- Знакомство с отладчиком Visual Studio First look at the Visual Studio Debugger
- Установка точки останова и запуск отладчика Set a breakpoint and start the debugger
- Переход по коду в отладчике с помощью пошаговых команд Navigate code in the debugger using step commands
- Шаг с обходом по коду для пропуска функций Step over code to skip functions
- Шаг с заходом в свойство Step into a property
- Быстрое выполнение до точки в коде с помощью мыши Run to a point in your code quickly using the mouse
- Вывод отладчика из текущей функции Advance the debugger out of the current function
- Выполнить до текущей позиции Run to cursor
- Быстрый перезапуск приложения Restart your app quickly
- Изменение кода и продолжение отладки (C#, VB, C++, XAML) Edit your code and continue debugging (C#, VB, C++, XAML)
- Проверка переменных с помощью подсказок по данным Inspect variables with data tips
- Проверка переменных с помощью окон «Видимые» и «Локальные» Inspect variables with the Autos and Locals windows
- Установка контрольного значения Set a watch
- Просмотр стека вызовов Examine the call stack
- Изучение исключения Examine an exception
- Настройка отладки Configure debugging
- Отладка интерактивных приложений ASP.NET в Службе приложений Azure Debug live ASP.NET apps in Azure App Service
- Просмотр моментальных снимков с помощью возврата на шаг назад в IntelliTrace (Visual Studio Enterprise) View snapshots with IntelliTrace step-back (Visual Studio Enterprise)
- Отладка проблем производительности Debug performance issues
- Следующие шаги Next steps
Отладчик Windows (WinDbg) Windows Debugger (WinDbg)
Отладка устройства Windows 10 IoT базовая с помощью мощного отладчика Windows, WinDbg. Debug your Windows 10 IoT Core device using the powerful Windows debugger, WinDbg.
В следующих разделах описывается, как успешно подключиться с WinDbg к устройству Windows 10 IoT базовая для отладки. The following sections describe how to successfully connect with WinDbg to a Windows 10 IoT Core device for debugging purposes. Сюда входит описание необходимых параметров программного обеспечения на устройстве, а также физические подключения оборудования. This includes a description of the necessary software settings on the device as well as the physical hardware connections.
WinDbg — очень мощный отладчик, с которым знакомы большинство разработчиков Windows. WinDbg is a very powerful debugger that most Windows developers are familiar with. Однако если вы только приступите к работе и хотите узнать больше о WinDbg, перейдите по следующим ссылкам: However, if you are just getting started and would like to learn more about WinDbg, please visit the following links:
MinnowBoard Max (МИКРОТЕСТОВ) MinnowBoard Max (MBM)
Вы можете подключить WinDbg к устройству MinnowBoard Max с помощью сетевого подключения. You can connect WinDbg to the MinnowBoard Max device using a network connection.
Настройка сетевого подключения Setup network connection
Чтобы включить отладку ядра с помощью WinDbg по сети, убедитесь, что: In order to enable kernel debugging with WinDbg over a network, ensure that:
Кабель Ethernet подключен к сети MinnowBoard Max Device. An Ethernet cable is connected to MinnowBoard Max device to your network
MinnowBoard Max Device имеет допустимый IP-адрес в вашей сети. The MinnowBoard Max device has a valid IP address in your network
Активное подключение к устройству MinnowBoard Max с помощью PowerShell An active connection to the MinnowBoard Max device via PowerShell
Используя активное подключение PowerShell, выполните следующие команды в параметре MinnowBoard Max, чтобы включить отладку по сети. Using the active PowerShell connection, execute the following commands on the MinnowBoard Max to enable debugging over the network.
bcdedit -dbgsettings net hostip: port:
Эта команда включает отладку по сети. This command enables debugging over the network. Кроме того, он указывает IP-адрес компьютера, на котором будет выполняться WinDbg (DEV_PC_IP_ADDRESS), номер сетевого порта, используемого для подключения (PORT_NUM), и уникальный ключ, который будет использоваться для различения нескольких подключений (ключ). Additionally, it specifies the IP address of the PC where WinDbg will be running (DEV_PC_IP_ADDRESS), the network port number to use for the connection (PORT_NUM), and a unique key to be used to differentiate multiple connections (KEY)
Для PORT_NUM и ключа можно использовать следующие значения в качестве примеров: 50045 и 1.2.3.4 соответственно, хотя вы можете изменить их по своему усмотрению. For PORT_NUM and KEY, you can use the following values as examples: 50045 and 1.2.3.4 respectively, although you are free to change them as you see fit
bcdedit -debug on
- Эта команда включает отладку на устройстве This command turns on debugging on the device
На компьютере разработчика запустите WinDbg с PORT_NUM и КЛЮЧЕВЫМи значениями, приведенными в предыдущих шагах, как показано ниже. «c:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe» -k net:port=
,key= On the developer PC, start WinDbg with the PORT_NUM and the KEY values provided in the previous steps as follows: «c:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe» -k net:port=
Если вы установили любой из установленных комплектов Windows, вы можете найти WinDbg в разделе C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe If you have any of the Windows kits installed, you may find WinDbg under C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe
- Перезагрузка устройства Иоткоре для повторного подключения к отладчику Reboot the IoTCore device to reconnect to the debugger
Raspberry Pi 2 или 3 (RPi2 или RPi3) Raspberry Pi 2 or 3 (RPi2 or RPi3)
Вы можете подключить WinDbg к Raspberry Pi 2 или 3 с помощью последовательного подключения. You can connect WinDbg to the Raspberry Pi 2 or 3 using a serial connection.
Настройка последовательного подключения Setup serial connection
Чтобы включить отладку ядра с помощью WinDbg через последовательное подключение, убедитесь, что: In order to enable kernel debugging with WinDbg over a serial connection, ensure that:
У вас есть отладочный кабель, такой как последовательный кабель от USB до TTL от Adafruit или фтди. You have a debug cable such as the USB-to-TTL Serial Cable from Adafruit or FTDI.
Кабель Ethernet или активный WiFi, соединяющий устройство Raspberry Pi 2 или 3 с вашей сетью (для IP-подключений, таких как SSH или PowerShell). An Ethernet cable or active WiFi connecting your Raspberry Pi 2 or 3 device to your network (for IP connections like SSH or PowerShell)
Устройство Raspberry Pi 2 или 3 имеет допустимый IP-адрес в сети The Raspberry Pi 2 or 3 device has a valid IP address in your network
Активное подключение к устройству Raspberry Pi 2 или 3 с помощью PowerShell или SSH An active connection to the Raspberry Pi 2 or 3 device via PowerShell or SSH
UART0 будет использоваться на устройстве Raspberry Pi 2 или 3 для подключения отладки ядра. UART0 will be used on the Raspberry Pi 2 or 3 device for the kernel debugging connection. Ниже показаны сопоставления ПИН-кода для Raspberry Pi 2 или 3, а также последовательных кабелей: The following shows the pin mappings for the Raspberry Pi 2 or 3 as well as the serial cables:
Основная идея для создания правильных последовательных подключений заключается в том, что хотя одно устройство использует его для передачи данных, другое устройство использует RX для получения данных. The basic idea for making the correct serial connections is to remember that while one device uses its TX to transmit data, the other device uses its RX to receive the data. Ниже перечислены рекомендуемые подключения. Recommended connections are listed below:
Соединение ЕФИЕСП больше не создается. The EFIESP junction is no longer created. Его необходимо подключить самостоятельно. для получения идентификатора GUID можно использовать команду mountvol. You’ll have to mount it yourself,you can use mountvol command to get the GUID. mkdir C:\EFIESP mountvol C:\EFIESP \?\Volume
Используя активное подключение PowerShell, выполните следующие команды на устройстве Raspberry Pi 2 или 3, чтобы включить отладку по последовательному подключению. Using the active PowerShell connection, execute the following commands on the Raspberry Pi 2 or 3 device to enable debugging over the serial connection.
bcdedit /store c:\EFIESP\EFI\Microsoft\Boot\BCD -dbgsettings serial
- Приведенная выше команда включает последовательное подключение для отладки. The above command enables the serial connection for debugging
- Скорость передачи для Raspberry Pi 2 или 3 жестко запрограммирована на 921600, поэтому вам не нужно указывать его. The baud-rate for the Raspberry Pi 2 or 3 is hard-coded to 921600, so you don’t have to specify it
bcdedit /store c:\EFIESP\EFI\Microsoft\Boot\BCD -debug on
- Эта команда включает отладку на устройстве This command turns on debugging on the device
На компьютере разработчика получите порт номера порта COM, назначенный в системе для кабеля USB – TTL. On the developer PC, get the COM port number PORT assigned in the system for the USB-to-TTL cable. Он будет доступен в Device Manager в разделе «порты (COM & LPT)». This will be available in Device Manager under «Ports (COM & LPT)».
«C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe» -k com:port=
- Запуск WinDbg с номером порта Start WinDbg with the PORT number
Если вы установили любой из установленных комплектов Windows, вы можете найти WinDbg в разделе C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe If you have any of the Windows kits installed, you may find WinDbg under C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe
- Перезагрузка устройства Иоткоре для повторного подключения к отладчику Reboot the IoTCore device to reconnect to the debugger
Драгонбоард (DB) DragonBoard (DB)
Вы можете подключить WinDbg к Драгонбоард с помощью последовательного или USB-подключения. You can connect WinDbg to the DragonBoard using a serial or USB connection.
Используя активное подключение PowerShell или SSH к Драгонбоард, выполните следующие команды, чтобы включить отладку. Using the active PowerShell or SSH connection to your DragonBoard, execute the following commands to enable debugging.
- bcdedit /store c:\EFIESP\EFI\Microsoft\Boot\BCD /debug
ON - Включает отладчик Enables the debugger
Настройка USB-подключения Setup USB connection
По умолчанию параметры отладчика USB настраиваются в тестовых образах. By default the USB debugger settings are configured in the test images.
Когда отладчик ядра USB включен, порты USB на устройстве Драгонбоард могут не работать (например, клавиатура, USB-порт Ethernet может не работать). Once USB kernel debugger is on, USB ports on the DragonBoard device might not work (i.e. keyboard, usb ethernet might not work).
Настройка последовательного подключения Setup serial connection
bcdedit /store c:\EFIESP\EFI\Microsoft\Boot\BCD /dbgsettings Serial debugport:1 baudrate:115200
- Настраивает последовательный порт Configures the serial port
Перезагрузка устройства Иоткоре для повторного подключения к отладчику Reboot the IoTCore device to reconnect to the debugger
Знакомство с отладчиком Visual Studio First look at the Visual Studio Debugger
В этом разделе представлены средства отладчика, предоставляемые Visual Studio. This topic introduces the debugger tools provided by Visual Studio. В контексте Visual Studio отладка приложения обычно означает запуск приложения с подключенным отладчиком (то есть в режиме отладчика). In the Visual Studio context, when you debug your app, it usually means that you are running the application with the debugger attached (that is, in debugger mode). При этом в отладчике доступно множество способов наблюдения за выполнением кода. When you do this, the debugger provides many ways to see what your code is doing while it runs. Вы можете пошагово перемещаться по коду и просматривать значения, хранящиеся в переменных, задавать контрольные значения для переменных, чтобы отслеживать изменение значений, изучать путь выполнения кода и т. д. Если вы не знакомы с процессом отладки, перед выполнением задач в этом разделе рекомендуется прочесть документ об отладке для начинающих. You can step through your code and look at the values stored in variables, you can set watches on variables to see when values change, you can examine the execution path of your code, et al. If this is the first time that you’ve tried to debug code, you may want to read Debugging for absolute beginners before going through this topic.
Описанные здесь функции применяются к C#, C++, Visual Basic, JavaScript и другим языкам, поддерживаемым Visual Studio (если не указано иное). The features described here are applicable to C#, C++, Visual Basic, JavaScript, and other languages supported by Visual Studio (except where noted).
Установка точки останова и запуск отладчика Set a breakpoint and start the debugger
Для отладки нужно запустить приложение с отладчиком, подключенным к процессу приложения. To debug, you need to start your app with the debugger attached to the app process. Для этого чаще всего используется клавиша F5 (Отладка > Начать отладку). F5 (Debug > Start Debugging) is the most common way to do that. Однако сейчас у вас, возможно, не задано ни одной точки останова для проверки кода приложения, поэтому мы сначала зададим их, а затем начнем отладку. However, right now you may not have set any breakpoints to examine your app code, so we will do that first and then start debugging. Точки останова — это один из самых простых и важных компонентов надежной отладки. Breakpoints are the most basic and essential feature of reliable debugging. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода. A breakpoint indicates where Visual Studio should suspend your running code so you can take a look at the values of variables, or the behavior of memory, or whether or not a branch of code is getting run.
Если вы открыли файл в редакторе кода, точку останова можно задать, щелкнув в поле слева от строки кода. If you have a file open in the code editor, you can set a breakpoint by clicking in the margin to the left of a line of code.
Нажмите клавишу F5 (Отладка > Начать отладку) или Начать отладку кнопку на панели инструментов отладки, при этом отладчик выполняется до первой встреченной точки останова. Press F5 (Debug > Start Debugging) or the Start Debugging button
in the Debug Toolbar, and the debugger runs to the first breakpoint that it encounters. Если приложение еще не запущено, при нажатии клавиши F5 запускается отладчик и выполняется остановка в первой точке останова. If the app is not yet running, F5 starts the debugger and stops at the first breakpoint.
Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить. Breakpoints are a useful feature when you know the line of code or the section of code that you want to examine in detail.
Переход по коду в отладчике с помощью пошаговых команд Navigate code in the debugger using step commands
Мы указываем сочетания клавиш для большинства команд, так как они ускоряют навигацию по коду вашего приложения. We provide the keyboard shortcuts for most commands because they make navigation of your app code quicker. (Эквивалентные команды, например команды меню, приведены в круглых скобках.) (Equivalent commands such as menu commands are shown in parentheses.)
Для запуска приложения с подключенным отладчиком нажмите клавишу F11 (Отладка > Шаг с заходом). To start your app with the debugger attached, press F11 (Debug > Step Into). F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. F11 is the Step Into command and advances the app execution one statement at a time. При запуске приложения с помощью клавиши F11 отладчик останавливается на первом выполняемом операторе. When you start the app with F11, the debugger breaks on the first statement that gets executed.
Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен). The yellow arrow represents the statement on which the debugger paused, which also suspends app execution at the same point (this statement has not yet executed).
Клавишу F11 удобно использовать для более детальной проверки потока выполнения. F11 is a good way to examine the execution flow in the most detail. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме «Только мой код»). (To move faster through code, we show you some other options as well.) By default, the debugger skips over non-user code (if you want more details, see Just My Code).
В управляемом коде вы увидите диалоговое окно с запросом о том, хотите ли вы получать уведомления при автоматическом обходе свойств и операторов (поведение по умолчанию). In managed code, you will see a dialog box asking if you want to be notified when you automatically step over properties and operators (default behavior). Если вы хотите изменить этот параметр позже, отключите параметр Шаг с обходом свойств и операторов в меню Сервис > Параметры в разделе Отладка. If you want to change the setting later, disable Step over properties and operators setting in the Tools > Options menu under Debugging.
Шаг с обходом по коду для пропуска функций Step over code to skip functions
Когда вы находитесь на строке кода, представляющей собой вызов функции или метода, можно нажать клавишу F10 (Отладка > Шаг с обходом) вместо F11. When you are on a line of code that is a function or method call, you can press F10 (Debug > Step Over) instead of F11.
Клавиша F10 продолжает выполнение отладчика без захода в функции или методы в коде приложения (код продолжает выполняться). F10 advances the debugger without stepping into functions or methods in your app code (the code still executes). Нажав клавишу F10, вы можете обойти код, который вас не интересует. By pressing F10, you can skip over code that you’re not interested in. Так можно быстро перейти к важному для вас коду. This way, you can quickly get to code that you are more interested in.
Шаг с заходом в свойство Step into a property
Как упоминалось ранее, по умолчанию отладчик пропускает управляемые свойства и поля, однако команда Шаг с заходом в конкретное расположение позволяет переопределить это поведение. As mentioned earlier, by default the debugger skips over managed properties and fields, but the Step Into Specific command allows you to override this behavior.
Щелкните правой кнопкой мыши свойство или поле и выберите Шаг с заходом в конкретное расположение, а затем выберите один из доступных параметров. Right-click on a property or field and choose Step Into Specific, then choose one of the available options.
В этом примере команда Шаг с заходом в конкретное расположение приводит нас к коду для Path.set . In this example, Step Into Specific gets us to the code for Path.set .
Быстрое выполнение до точки в коде с помощью мыши Run to a point in your code quickly using the mouse
Находясь в отладчике, наведите курсор на строку кода, пока слева не появится кнопка выполнения до щелкнутого (Выполнить до этого места) отображается слева. appears on the left.
Кнопка выполнения до щелкнутого (Выполнить до этого места) доступна начиная с версии Visual Studio 2017 Visual Studio 2017 . The Run to Click (Run execution to here) button is available starting in Visual Studio 2017 Visual Studio 2017 .
Нажмите кнопку выполнения до щелкнутого (Выполнить до этого места). Click the Run to Click (Run execution to here) button. Отладчик продолжает выполнение до строки кода, которую вы щелкнули. The debugger advances to the line of code where you clicked.
Использование этой кнопки аналогично установке временной точки останова. Using this button is similar to setting a temporary breakpoint. Кроме того, эта команда удобна для быстрой работы в видимой области кода приложения. This command is also handy for getting around quickly within a visible region of app code. Выполнение до щелкнутого можно использовать в любом открытом файле. You can use Run to Click in any open file.
Вывод отладчика из текущей функции Advance the debugger out of the current function
В некоторых случаях может потребоваться продолжить сеанс отладки, однако полностью проведя отладчик сквозь текущую функцию. Sometimes, you might want to continue your debugging session but advance the debugger all the way through the current function.
Нажмите клавиши SHIFT+F11 (или выберите Отладка > Шаг с выходом). Press Shift + F11 (or Debug > Step Out).
Эта команда возобновляет выполнение приложения (и перемещает отладчик) до возврата текущей функции. This command resumes app execution (and advances the debugger) until the current function returns.
Выполнить до текущей позиции Run to cursor
Если вы находитесь в режиме редактирования кода (то есть работа отладчика не приостановлена), щелкните правой кнопкой мыши строку кода в приложении и выберите команду Выполнить до текущей позиции (или нажмите клавиши CTRL+F10). When you are editing code (rather than paused in the debugger), right-click a line of code in your app and choose Run to Cursor (or press Ctrl to F10). Эта команда запускает отладку и задает временную точку останова на текущей строке кода. This command starts debugging and sets a temporary breakpoint on the current line of code.
Если имеются заданные точки останова, отладчик приостанавливается в первой достигнутой точке останова. If you have set breakpoints, the debugger pauses on the first breakpoint that it hits.
Нажимайте клавишу F5, пока не достигнете строки кода, для которой выбрали Выполнить до текущей позиции. Press F5 until you reach the line of code where you selected Run to Cursor.
Эта команда удобна, когда вы редактируете код и хотите быстро задать временную точку останова и одновременно запустить отладчик. This command is useful when you are editing code and want to quickly set a temporary breakpoint and start the debugger at the same time.
Вы можете использовать функцию Выполнить до текущей позиции в окне Стек вызовов во время отладки. You can use Run to Cursor in the Call Stack window while you are debugging.
Быстрый перезапуск приложения Restart your app quickly
Нажмите кнопку Перезапустить на панели инструментов отладки (или нажмите клавиши CTRL+SHIFT+F5). Click the Restart
button in the Debug Toolbar (or press Ctrl + Shift + F5).
Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. When you press Restart, it saves time versus stopping the app and restarting the debugger. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода. The debugger pauses at the first breakpoint that is hit by executing code.
Если вы хотите остановить отладчик и вернуться в редактор кода, вы можете нажать красную кнопку вместо Перезапустить. If you do want to stop the debugger and get back into the code editor, you can press the red stop
button instead of Restart.
Изменение кода и продолжение отладки (C#, VB, C++, XAML) Edit your code and continue debugging (C#, VB, C++, XAML)
В большинстве языков, поддерживаемых Visual Studio, можно изменять код во время сеанса отладки, а затем продолжать отладку. In most languages supported by Visual Studio, you can edit your code in the middle of a debugging session and continue debugging. Для использования этой функции щелкните код, чтобы установить в нем курсор, когда отладчик приостановлен, внесите изменения и нажмите клавишу F5, F10 или F11, чтобы продолжить отладку. To use this feature, click into your code with your cursor while paused in the debugger, make edits, and press F5, F10, or F11 to continue debugging.
Дополнительные сведения об этой функции и ее ограничениях см. в статье Изменить и продолжить. For more information on using the feature and on feature limitations, see Edit and Continue.
Сведения об изменении кода XAML во время сеанса отладки см. в статье Создание и отладка выполняющегося кода XAML с помощью горячей перезагрузки XAML. To modify XAML code during a debugging session, see Write and debug running XAML code with XAML Hot Reload.
Проверка переменных с помощью подсказок по данным Inspect variables with data tips
Теперь, когда вы немного освоились, у вас есть хорошая возможность проверить состояние приложения (переменные) с помощью отладчика. Now that you know your way around a little, you have a good opportunity to start inspecting your app state (variables) with the debugger. Функции, позволяющие проверять переменные, являются одними из самых полезных в отладчике. Реализовывать эту задачу можно разными способами. Features that allow you to inspect variables are some of the most useful features of the debugger, and there are different ways to do it. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются в определенном состоянии приложения. Often, when you try to debug an issue, you are attempting to find out whether variables are storing the values that you expect them to have in a particular app state.
Приостановив работу в отладчике, наведите указатель мыши на объект, чтобы просмотреть его значение свойства по умолчанию (в этом примере имя файла market 031.jpg является значением свойства по умолчанию). While paused in the debugger, hover over an object with the mouse and you see its default property value (in this example, the file name market 031.jpg is the default property value).
Разверните объект для просмотра его свойств (таких как свойство FullPath в этом примере). Expand the object to see all its properties (such as the FullPath property in this example).
Часто при отладке бывает необходимо быстро проверить значения свойств для объектов. Лучше всего для этого подходят подсказки по данным. Often, when debugging, you want a quick way to check property values on objects, and the data tips are a good way to do it.
В большинстве поддерживаемых языков можно изменять код во время сеанса отладки. In most supported languages, you can edit code in the middle of a debugging session. Дополнительные сведения см. в разделе Изменить и продолжить. For more info, see Edit and Continue.
Проверка переменных с помощью окон «Видимые» и «Локальные» Inspect variables with the Autos and Locals windows
Во время отладки взгляните на окно Видимые в нижней части редактора кода. While debugging, look at the Autos window at the bottom of the code editor.
В окне Видимые отображаются переменные вместе с текущим значением и типом. In the Autos window, you see variables along with their current value and their type. Окно Видимые содержит все переменные, используемые в текущей строке или предыдущей строке (в C++ в окне отображаются переменные в трех предыдущих строках кода; The Autos window shows all variables used on the current line or the preceding line (In C++, the window shows variables in the preceding three lines of code. сведения о зависящем от языка поведении см. в соответствующей документации). Check documentation for language-specific behavior).
В JavaScript окно Локальные поддерживается, а окно Видимые — нет. In JavaScript, the Locals window is supported but not the Autos window.
Взгляните в окно Локальные. Next, look at the Locals window. В окне Локальные показаны переменные, которые находятся в текущей области. The Locals window shows you the variables that are currently in scope.
В этом примере объекты this и f находятся в области действия. In this example, the this object and the object f are in scope. Дополнительные сведения см. в статье Проверка переменных в окнах «Видимые» и «Локальные». For more info, see Inspect Variables in the Autos and Locals Windows.
Установка контрольного значения Set a watch
В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать. You can use a Watch window to specify a variable (or an expression) that you want to keep an eye on.
Во время отладки щелкните правой объект кнопкой мыши и выберите пункт Добавить контрольное значение. While debugging, right-click an object and choose Add Watch.
В этом примере у вас есть контрольное значение, заданное для объекта f , и по мере перемещения по отладчику вы можете наблюдать за изменением его значения. In this example, you have a watch set on the f object, and you can see its value change as you move through the debugger. В отличие от других окон переменных, в окне Контрольное значение всегда отображаются просматриваемые вами переменные (они выделяются серым цветом, когда находятся вне области действия). Unlike the other variable windows, the Watch windows always show the variables that you are watching (they’re grayed out when out of scope).
Просмотр стека вызовов Examine the call stack
Во время отладки щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области. Click the Call Stack window while you are debugging, which is by default open in the lower right pane.
В окне Стек вызовов показан порядок вызова методов и функций. The Call Stack window shows the order in which methods and functions are getting called. В верхней строке приведена текущая функция (в данном примере метод Update ). The top line shows the current function (the Update method in this example). Во второй строке показано, что функция Update была вызвана из свойства Path.set и т. д. The second line shows that Update was called from the Path.set property, and so on. Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения. The call stack is a good way to examine and understand the execution flow of an app.
Окно Стек вызовов аналогично перспективе «Отладка» в некоторых интегрированных средах разработки, например Eclipse. The Call Stack window is similar to the Debug perspective in some IDEs like Eclipse.
Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. You can double-click a line of code to go look at that source code and that also changes the current scope being inspected by the debugger. Это не перемещает отладчик. This does not advance the debugger.
Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. You can also use right-click menus from the Call Stack window to do other things. Например, можно вставлять точки останова в указанные функции, перезапускать приложение с помощью функции Выполнение до текущей позиции и изучать исходный код. For example, you can insert breakpoints into specific functions, restart your app using Run to Cursor, and to go examine source code. См. практическое руководство по просмотреть стек вызовов. See How to: Examine the Call Stack.
Изучение исключения Examine an exception
Когда приложение выдает исключение, отладчик переходит к строке кода, вызвавшей исключение. When your app throws an exception, the debugger takes you to the line of code that threw the exception.
В этом примере помощник по исправлению ошибок показывает исключение System.Argument и сообщение об ошибке, где сказано, что путь имеет недопустимую форму. In this example, the Exception Helper shows you a System.Argument exception and an error message that says that the path is not a legal form. Таким образом, мы знаем, что ошибка произошла в аргументе метода или функции. So, we know the error occurred on a method or function argument.
В этом примере вызов DirectoryInfo выдал ошибку на пустой строке, хранящейся в переменной value . In this example, the DirectoryInfo call gave the error on the empty string stored in the value variable.
Помощник по исправлению ошибок — это отличная функция, которая помогает отлаживать ошибки. The Exception Helper is a great feature that can help you debug errors. Используя помощник по исправлению ошибок, вы также можете, например, просмотреть сведения об ошибке и добавить контрольное значение. You can also do things like view error details and add a watch from the Exception Helper. При необходимости вы также можете изменить условия для возникновения конкретного исключения. Or, if needed, you can change conditions for throwing the particular exception. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки. For more information on how to handle exceptions in your code, see Debugging techniques and tools.
Помощник по исправлению ошибок заменил помощник по исключениям, который запускается в Visual Studio 2017 Visual Studio 2017 . The Exception Helper replaced the Exception Assistant starting in Visual Studio 2017 Visual Studio 2017 .
Разверните узел Параметры исключений, чтобы просмотреть дополнительные параметры для обработки исключения этого типа, однако в рамках этого тура ничего менять не требуется. Expand the Exception Settings node to see more options on how to handle this exception type, but you don’t need to change anything for this tour!
Настройка отладки Configure debugging
Вы можете настроить проект для сборки, как описано в статье о конфигурации отладки или выпуска, настроить свойства проекта для отладки или настроить общие параметры для отладки. You can configure your project to build as a Debug or Release configuration, configure project properties for debugging, or configure general settings for debugging. Кроме того, можно настроить отладчик для вывода пользовательских сведений с помощью таких компонентов, как атрибута DebuggerDisplay либо платформы NatVis для C/C++. In addition, you can configure the debugger to display custom information using features such as DebuggerDisplay attribute or, for C/C++, the NatVis framework.
Свойства отладки зависят от типа проекта. Debugging properties are specific to each project type. Например, можно задать аргумент, который будет передан в приложение при запуске. For example, you can specify an argument to pass to the application when you start it. Чтобы получить доступ к свойствам проекта приложения, щелкните имя проекта правой кнопкой мыши в обозревателе решений и выберите Свойства. You can access the project-specific properties by right-clicking the project in Solution Explorer and selecting Properties. Свойства отладки обычно отображаются на вкладке Сборка или Отладка в зависимости от типа проекта. Debugging properties typically appear in the Build or Debug tab, depending on the particular project type.
Отладка интерактивных приложений ASP.NET в Службе приложений Azure Debug live ASP.NET apps in Azure App Service
Средство Snapshot Debugger создает моментальный снимок рабочих приложений при выполнении интересующего вас кода. the Snapshot Debugger takes a snapshot of your in-production apps when code that you are interested in executes. Чтобы указать отладчику на необходимость создать моментальный снимок, следует установить точки прикрепления и точки ведения в коде. To instruct the debugger to take a snapshot, you set snappoints and logpoints in your code. Отладчик позволяет увидеть источник ошибки, не затрагивая трафик рабочего приложения. The debugger lets you see exactly what went wrong, without impacting traffic of your production application. Средство Snapshot Debugger позволяет значительно сократить затраты времени на устранение проблем, возникающих в рабочих средах. The Snapshot Debugger can help you dramatically reduce the time it takes to resolve issues that occur in production environments.
Коллекция моментальных снимков доступна для приложений ASP.NET, выполняющихся в Службе приложений Azure. Snapshot collection is available for ASP.NET applications running in Azure App Service. Приложения ASP.NET должны выполняться на платформе .NET Framework 4.6.1 или более поздней версии, а приложения ASP.NET Core должны выполняться на платформе .NET Core 2.0 или более поздней версии в Windows. ASP.NET applications must be running on .NET Framework 4.6.1 or later, and ASP.NET Core applications must be running on .NET Core 2.0 or later on Windows.
Просмотр моментальных снимков с помощью возврата на шаг назад в IntelliTrace (Visual Studio Enterprise) View snapshots with IntelliTrace step-back (Visual Studio Enterprise)
Функция возврата на шаг назад в IntelliTrace автоматически создает моментальный снимок вашего приложения для каждого события точки останова и шага отладчика. IntelliTrace step-back automatically takes a snapshot of your application at every breakpoint and debugger step event. Используя записанные моментальные снимки, вы можете возвращаться к этим точкам останова и шагам, просматривая предыдущее состояние приложения. The recorded snapshots enable you to go back to previous breakpoints or steps and view the state of the application as it was in the past. Возможность возврата на шаг назад в IntelliTrace позволяет сэкономить время в тех случаях, когда вам нужно просмотреть предыдущее состояние приложения, но не требуется перезапускать отладку или воссоздавать необходимое состояние приложения. IntelliTrace step-back can save you time when you want to see the previous application state but don’t want to restart debugging or recreate the desired app state.
Для просмотра моментальных снимков и перехода между ними используйте кнопки На шаг назад и На шаг вперед на панели инструментов отладки. You can navigate and view snapshots by using the Step Backward and Step Forward buttons in the Debug toolbar. С помощью этих кнопок можно перейти к событиям, которые отображаются на вкладке События в окне Средства диагностики. These buttons navigate the events that appear in the Events tab in the Diagnostic Tools window.
Отладка проблем производительности Debug performance issues
Если приложение работает слишком медленно или использует слишком много памяти, возможно, вам следует протестировать его с помощью средств профилирования на раннем этапе. If your app runs too slowly or uses too much memory, you may need to test your app with the profiling tools early on. Дополнительные сведения о средствах профилирования, таких как средство загрузки ЦП и анализатор памяти, см. в разделе Знакомство со средствами профилирования. For more information about profiling tools such as the CPU Usage tool and the Memory Analyzer, see First look at the profiling tools.
Следующие шаги Next steps
В этом руководстве вы кратко познакомились с функциями отладчика. In this tutorial, you’ve had a quick look at many debugger features. Отдельные функции, например точки останова, вы можете изучить более подробно. You may want a more in-depth look at one of these features, such as breakpoints.