Отладка visual studio 2008

Обновлено: 04.07.2024

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

Установка точки останова и запуск отладчика

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

Для отладки нужно запустить приложение с отладчиком, подключенным к процессу приложения. Для этого чаще всего используется клавиша F5 (Отладка > Начать отладку). Однако сейчас у вас, возможно, не задано ни одной точки останова для проверки кода приложения, поэтому мы сначала зададим их, а затем начнем отладку. Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.

Если вы открыли файл в редакторе кода, точку останова можно задать, щелкнув в поле слева от строки кода.

Начать отладку

Нажмите клавишу F5 (Отладка > Начать отладку) или Начать отладку кнопку на панели инструментов отладки, при этом отладчик выполняется до первой встреченной точки останова. Если приложение еще не запущено, при нажатии клавиши F5 запускается отладчик и выполняется остановка в первой точке останова.

Переход по коду в отладчике с помощью пошаговых команд

Мы указываем сочетания клавиш для большинства команд, так как они ускоряют навигацию по коду вашего приложения. (Аналогичные команды, такие как команды меню, отображаются в круглых скобках.) Дополнительные сведения об использовании команд пошагового выполнения см. в разделе Навигация по коду в отладчике.

Для запуска приложения с подключенным отладчиком нажмите клавишу F11 (Отладка > Шаг с заходом). F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. При запуске приложения с помощью клавиши F11 отладчик останавливается на первом выполняемом операторе.

F11 Шаг с заходом

Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).

Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме "Только мой код").

В управляемом коде вы увидите диалоговое окно с запросом о том, хотите ли вы получать уведомления при автоматическом обходе свойств и операторов (поведение по умолчанию). Если вы хотите изменить этот параметр позже, отключите параметр Шаг с обходом свойств и операторов в меню Сервис > Параметры в разделе Отладка.

Шаг с обходом по коду для пропуска функций

Когда вы находитесь на строке кода, представляющей собой вызов функции или метода, можно нажать клавишу F10 (Отладка > Шаг с обходом) вместо F11.

Клавиша F10 продолжает выполнение отладчика без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10, вы можете обойти код, который вас не интересует. Так можно быстро перейти к важному для вас коду. Дополнительные сведения об использовании команд пошагового выполнения см. в разделе Навигация по коду в отладчике.

Шаг с заходом в свойство

Как упоминалось ранее, по умолчанию отладчик пропускает управляемые свойства и поля, однако команда Шаг с заходом в конкретное расположение позволяет переопределить это поведение.

Щелкните правой кнопкой мыши свойство или поле и выберите Шаг с заходом в конкретное расположение, а затем выберите один из доступных параметров.

Снимок экрана: отладчик Visual Studio с выделенной строкой кода. В контекстном меню выбран вариант "Шаг с заходом в конкретное расположение" и выбран метод Path.set.

В этом примере команда Шаг с заходом в конкретное расположение приводит нас к коду для Path.set .

Снимок экрана: отладчик Visual Studio, отображающий код для Path.set. Фигурные скобки, окружающие функцию Set, выделены желтым цветом.

Быстрое выполнение до точки в коде с помощью мыши

Использование кнопки Выполнение до щелкнутого аналогично установке временной точки останова. Кроме того, эта команда удобна для быстрой работы в видимой области кода приложения. Выполнение до щелкнутого можно использовать в любом открытом файле. Дополнительные сведения об этой функции и аналогичных функциях навигации см. в разделе Выполнение до определенного места в коде.

Снимок экрана: кнопка выполнения до щелкнутого в отладчике Visual Studio. Кнопка указывает на то, что выполнение должно происходить до строки, в которой размещена кнопка.

Находясь в отладчике, наведите курсор на строку кода, пока слева не появится кнопка выполнения до щелкнутого (Выполнить до этого места) отображается слева.

Снимок экрана: отладчик Visual Studio, отображающий кнопку выполнения до щелкнутого, появляющуюся слева от вызова функции "Обновление".

Кнопка выполнения до щелкнутого (Выполнить до этого места) доступна начиная с версии Visual Studio 2017.

Вывод отладчика из текущей функции

В некоторых случаях может потребоваться продолжить сеанс отладки, однако полностью проведя отладчик сквозь текущую функцию.

Нажмите клавиши SHIFT+F11 (или выберите Отладка > Шаг с выходом).

Эта команда возобновляет выполнение приложения (и перемещает отладчик) до возврата текущей функции.

Выполнить до текущей позиции

Если вы находитесь в режиме редактирования кода (то есть работа отладчика не приостановлена), щелкните правой кнопкой мыши строку кода в приложении и выберите команду Выполнить до текущей позиции (или нажмите клавиши CTRL+F10). Эта команда запускает отладку и задает временную точку останова на текущей строке кода. Дополнительные сведения об этой функции и аналогичных функциях навигации см. в разделе Выполнение до определенного места в коде.

Выполнить до текущей позиции

Если имеются заданные точки останова, отладчик приостанавливается в первой достигнутой точке останова.

Нажимайте клавишу F5, пока не достигнете строки кода, для которой выбрали Выполнить до текущей позиции.

Эта команда удобна, когда вы редактируете код и хотите быстро задать временную точку останова и одновременно запустить отладчик.

Вы можете использовать функцию Выполнить до текущей позиции в окне Стек вызовов во время отладки.

Быстрый перезапуск приложения

Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.

Остановить отладку

Если вы хотите остановить отладчик и вернуться в редактор кода, вы можете нажать красную кнопку вместо Перезапустить.

В большинстве языков, поддерживаемых Visual Studio, можно изменять код во время сеанса отладки, а затем продолжать отладку. Для использования этой функции щелкните код, чтобы установить в нем курсор, когда отладчик приостановлен, внесите изменения и нажмите клавишу F5, F10 или F11, чтобы продолжить отладку. Дополнительные сведения об этой функции и ее ограничениях см. в статье Изменить и продолжить.

Сведения об изменении кода XAML во время сеанса отладки см. в статье Создание и отладка выполняющегося кода XAML с помощью горячей перезагрузки XAML.

Проверка переменных с помощью подсказок по данным

Теперь, когда вы немного освоились, у вас есть хорошая возможность проверить состояние приложения (переменные) с помощью отладчика. Функции, позволяющие проверять переменные, являются одними из самых полезных в отладчике. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются в определенном состоянии приложения. Подробные сведения об использовании подсказок по данным см. в разделе Просмотр значений данных в подсказках по данным.

Приостановив работу в отладчике, наведите указатель мыши на объект, чтобы просмотреть его значение свойства по умолчанию (в этом примере имя файла market 031.jpg является значением свойства по умолчанию).

Разверните объект для просмотра его свойств (таких как свойство FullPath в этом примере).

Часто при отладке бывает необходимо быстро проверить значения свойств для объектов. Лучше всего для этого подходят подсказки по данным.

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

Проверка переменных с помощью окон "Видимые" и "Локальные"

В окне Видимые отображаются переменные вместе с текущим значением и типом. Окно Видимые содержит все переменные, используемые в текущей строке или предыдущей строке (в C++ в окне отображаются переменные в трех предыдущих строках кода; сведения о зависящем от языка поведении см. в соответствующей документации). Дополнительные сведения об использовании этих окон см. в статье Проверка переменных в окнах "Видимые" и "Локальные".

Во время отладки взгляните на окно Видимые в нижней части редактора кода.

Окно "Видимые"

В JavaScript окно Локальные поддерживается, а окно Видимые — нет.

Взгляните в окно Локальные. В окне Локальные показаны переменные, которые находятся в текущей области.

Окно "Локальные"

В этом примере объекты this и f находятся в области действия. Дополнительные сведения см. в статье Проверка переменных в окнах "Видимые" и "Локальные".

Установка контрольного значения

В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать. Дополнительные сведения см. в статье Установка контрольных значений с помощью окон "Контрольное значение" и "Быстрая проверка".

Во время отладки щелкните правой объект кнопкой мыши и выберите пункт Добавить контрольное значение.

Окно "Контрольное значение"

В этом примере у вас есть контрольное значение, заданное для объекта f , и по мере перемещения по отладчику вы можете наблюдать за изменением его значения. В отличие от других окон переменных, в окне Контрольное значение всегда отображаются просматриваемые вами переменные (они выделяются серым цветом, когда находятся вне области действия).

Просмотр стека вызовов

В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном примере метод Update ). Во второй строке показано, что функция Update была вызвана из свойства Path.set и т. д. Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения. Дополнительные сведения см. в статье о просмотре стека вызовов.

Окно Стек вызовов аналогично перспективе "Отладка" в некоторых интегрированных средах разработки, например Eclipse.

Во время отладки щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.

Изучение стека вызовов

Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это не перемещает отладчик.

Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перезапускать приложение с помощью функции Выполнение до текущей позиции и изучать исходный код.

Проверка исключения

Когда приложение выдает исключение, отладчик переходит к строке кода, вызвавшей исключение. Подробные сведения см. в разделе Проверка исключения с помощью помощника по исправлению ошибок.

Помощник по исправлению ошибок

В этом примере вызов DirectoryInfo выдал ошибку на пустой строке, хранящейся в переменной value .

Помощник по исправлению ошибок — это отличная функция, которая помогает отлаживать ошибки. Используя помощник по исправлению ошибок, вы также можете, например, просмотреть сведения об ошибке и добавить контрольное значение. При необходимости вы также можете изменить условия для возникновения конкретного исключения. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки.

Разверните узел Параметры исключений, чтобы просмотреть дополнительные параметры для обработки исключения этого типа, однако в рамках этого тура ничего менять не требуется.

Настройка отладки

Вы можете настроить проект для сборки, как описано в статье о конфигурации отладки или выпуска, настроить свойства проекта для отладки или настроить общие параметры для отладки. Кроме того, можно настроить отладчик для вывода пользовательских сведений с помощью таких компонентов, как атрибута DebuggerDisplay либо платформы NatVis для C/C++.

Свойства отладки зависят от типа проекта. Например, можно задать аргумент, который будет передан в приложение при запуске. Чтобы получить доступ к свойствам проекта приложения, щелкните имя проекта правой кнопкой мыши в обозревателе решений и выберите Свойства. Свойства отладки обычно отображаются на вкладке Сборка или Отладка в зависимости от типа проекта.

Свойства проекта

Средство Snapshot Debugger создает моментальный снимок рабочих приложений при выполнении интересующего вас кода. Чтобы указать отладчику на необходимость создать моментальный снимок, следует установить точки прикрепления и точки ведения в коде. Отладчик позволяет увидеть источник ошибки, не затрагивая трафик рабочего приложения. Средство Snapshot Debugger позволяет значительно сократить затраты времени на устранение проблем, возникающих в рабочих средах.

Запуск Snapshot Debugger

Просмотр моментальных снимков с помощью возврата на шаг назад в IntelliTrace (Visual Studio Enterprise)

Функция возврата на шаг назад в IntelliTrace автоматически создает моментальный снимок вашего приложения для каждого события точки останова и шага отладчика. Используя записанные моментальные снимки, вы можете возвращаться к этим точкам останова и шагам, просматривая предыдущее состояние приложения. Возможность возврата на шаг назад в IntelliTrace позволяет сэкономить время в тех случаях, когда вам нужно просмотреть предыдущее состояние приложения, но не требуется перезапускать отладку или воссоздавать необходимое состояние приложения.

Для просмотра моментальных снимков и перехода между ними используйте кнопки На шаг назад и На шаг вперед на панели инструментов отладки. С помощью этих кнопок можно перейти к событиям, которые отображаются на вкладке События в окне Средства диагностики.

Отладка проблем производительности

Если приложение работает слишком медленно или использует слишком много памяти, возможно, вам следует протестировать его с помощью средств профилирования на раннем этапе. Дополнительные сведения о средствах профилирования, таких как средство загрузки ЦП и анализатор памяти, см. в разделе Знакомство со средствами профилирования.

Следующие шаги

В этом руководстве вы кратко познакомились с функциями отладчика. Отдельные функции, например точки останова, вы можете изучить более подробно.

Use breakpoints in the Visual Studio debugger (Использование точек останова в отладчике Visual Studio)

Затем в меню Debug в Visual Studio выберите пункт Attach To Process и в открывшемся диалоговом окне измените Transport на Smart Device, а в раскрывающемся списке Qualifier выберите ваше устройство. Далее в списке выберите ваш управляемый процесс и затем щелкните на кнопке Attach.

Как и протоколирование , этот режим отрицательно влияет на производительность всех управляемых приложений на устройстве, поэтому подключайтесь к отладчику только при отладке приложения.

Журнал ошибок

Журнал ошибок можно создавать, только начиная с версии .NET Compact Framework 2.0 SP1 и в более поздних. Он был добавлен для помощи в отладке безмониторных устройств, но его, естественно, можно также использовать и для отладки устройств с дисплеями. Журнал ошибок - это просто текстовая версия этого диалогового окна "error list".

12.3. Утилиты для создания программы установки в Visual Studio 2008

В Visual Studio 2008 вводится новый шаблон проекта специально для создания программы установки в виде САВ-файла непосредственно из интегрированной среды разработки. Раньше можно было создать CAB- файл программы установки только однажды, а затем приходилось вручную изменять INF- файл для повторной генерации САВ-файла при любых изменениях параметров. При новом подходе, этот процесс больше напоминает создание программы установки для настольного проекта.

12.4. Проект создания программы установки для мобильного устройства

Чтобы создать новую программу установки для мобильно устройства, в меню File выберите пункт New Project. Перейдите но цепочке Other Project Types, затем Setup And Deployment и выберите проект Smart Device CAB Project. Выбрав проект в дереве решений, можно настроить множество параметров проекта. Например, свойства Manufacturer и ProductName используются вместе в качестве имени компонента в списке Remove Programs. Поэтому рекомендуется, чтобы общая длина составной строки имени компонента не превышала примерно 36 символов, так как на большинстве устройств с портретной ориентацией строка будет обрезана. В том редком случае, когда вы хотите запретить пользователю удалять ваше приложение , можете исключить приложение из списка Remove Programs путем установки свойства NoUninstall в значение True .

Добавление файлов и настройка целевого устройства

Файлы устанавливаются путем вставки их в редакторе файловой системы нашего проекта программы установки. Вы можете использовать множество констант стандартных папок, которые развертывают свое содержимое в нужной локализованной папке на устройстве. Вы можете также создавать новые каталоги и подкаталоги.

Рассмотрим полученные данные на практическом примере, создания установочного cab-файла, на примере имеющегося проекта MyFirstSync . Создадим проект Smart Device CAB Project находящийся в Other Project Types, задав ему имя MySyncProgram . И перед вами появится окно рис. 12.2.

Окно проекта для создания CAB файла

Теперь в папке Program Files Folder создадим папку MySyncProgram и в нее следует добавить файлы, находящиеся в папке Bin\Release проекта, для которого создаем установочный файл. В папке Bin\Release, находится необходимый исполняемый файл и файл баз данных, их следует добавить в вашу папку, а dll файлы можно не добавлять. Так же общая рекомендация, если вы затрудняитесь в выборе добавляемых файлов, то выберите те файлы которые Visual Studio 2008, размещает в процессе Debug в папку приложения на эмуляторе.

Далее следует нажать правой кнопкой мыши в области окна файловой системы и выбрать подменю Start Menu Folder меню Add Special Folder ( рис. 12.3).

Добавление ярлыков

Ярлыки - это просто файлы, и в качестве таковых они также добавляются при помощи редактора файловой системы. Для создания ярлыка файла и проекте щелкните правой кнопкой мыши на файле и выберите команду Create Shortcut. Затем можете переименовать ярлык, чтобы присвоить ему удобочитаемое имя, и поместить его в нужную папку, например, в папку Start Menu Folder, если вы хотите, чтобы он присутствовал в подменю Programs меню Start.

Добавление специальных папок

12.5. Запись параметров реестра

Так же как и в проектах программ установки настольных версий Windows , в проекте развертывания на устройстве есть встроенная поддержка записи параметров реестра. Выберите редактор реестра, чтобы увидеть дерево корневых ключей. Под ними можете создавать собственные ключи. В том случае, если на устройстве их еще нет, они будут созданы. Часто эти ключи создаются не инсталлятором, а самой программой, в процессе работы пользователя с ней. Однако наша программа не столько сложна и не требует записей в реестр.

Теперь осуществим сборку ( F6 ), и необходимый вам cab файл будет расположен в папке DEBUG вашего CAB проекта.

Выводы

Вы познакомились с эффективными средствами диагностики и средствами управления состояния Windows Mobile на устройстве или эмуляторе Visual Studio 2008 и узнали как избежать типичных трудностях начинающих программистов в освоении данного инструментария.

Lorem ipsum dolor

Отладка кода в Visual Studio происходит довольно просто, если сравнивать это т процесс с другими IDE. Плюс отладчик Visual Studio обладает довольно широкими возможностями и позволяет отлаживать различные технологии, а если имеющихся средств не хватает, то можно воспользоваться дополнениями.

Отладка кода — это один из самых важных процессов. Без отладки в свет не выходит ни одно нормальное приложение. Потому что , независимо от опыта разработчика, код не всегда работает так , как нужно. А иногда и вообще работает совершенно не так. Вот тут как раз и приходит на помощь отладчик, который позволит разобраться , что не так , и найти изъяны. Можно , конечно , много часов провести за самостоятельным выявлением багов, но отладчиком все-таки быстрее и проще.

В то же время отладка кода — это не волшебная палочка, которая быстренько найдет и исправит все недочеты вашего кода. Отладка — это процесс, при котором код пошагово выполняется в некой программе, например , в Visual Studio. В процессе выполнения идет поиск точек, где вы могли допустить ошибку. А вы в это время можете анализировать свой код и вносить необходимые правки для устранения «косяков».

Работа с отладчиком , даже с таким простым , как Visual Studio, требует определенных знаний и понимания , что там внутри происходит. Умение работать с отладчиком вам в любом случае пригодится, если вы хотите связать свою жизнь с разработкой ПО. В этой статье мы ознакомим вас с процессом отладки при помощи Visual Studio.

Отладка кода в Visual Studio

  • орфографические ошибки или опечатки,
  • неправильно подключенные API,
  • неправильное размещение последних корректировок в код,
  • и др.
  • ошибка компиляции;
  • ошибка преобразования типа;
  • код не поддерживает синтаксис;
  • и др .

Как запустить отладчик Visual Studio

  1. Запустить саму программу Visual Studio.
  2. Откр ыть код приложения, который необходимо отладить.
  3. Потом при помощи нажатия клавиши «F5» запустить режим отладки. Также это можно сделать через меню, если нажать «Отладка», а потом «Начать отладку» .
  • последовательность исполнения кода;

  • работу памяти;

  • значение переменных и др.

Какая информация выводится отладчиком Visual Studio

В заключение

Отладка в Visual Studio дает возможность довольно быстро решить проблемы с вашим кодом. Да, без определенных знаний и понимания запустить и понять отладчик Visual Studio будет нелегко, но с опытом все станет понятнее. В разработке без отладки кода — путь в никуда , п отому что стабильность работы приложения — это залог его качества. И если на самом старте разработк и игнорировать этот процесс, то нет смысла идти дальше.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Отладка – неотъемлемый этап цикла разработки приложений, зачастую более важный, чем написание кода. Именно отладка позволяет устранить проблемные места в коде, которые приводят к разного рода ошибкам. В этой статье речь пойдет о том, как отлаживать приложения в среде Visual Studio и какие механизмы её облегчают. Предполагается, что читатель в общих чертах уже знаком что из себя представляет процесс отладки. Все примеры воспроизведены в Visual Studio 2008, но актуальны для любой версии.


Точки останова

Любой алгоритм выполняется последовательно, одна инструкция за другой. Точка остановки позволяет приостановить выполнение кода на определенной инструкции. Это необходимо, чтобы начать отладку с предположительно проблемного участка. Например, при модульной структуре проекта проблемы начались при подключении нового модуля. Незачем отлаживать весь проект, когда можно отладить только модуль. Точки остановки сильно облегчают процесс в этом случае. Для того, чтобы установить точку остановки необходимо кликнуть на небольшую область, выделенную как правило особым цветом, в левой части редактора кода. Также это можно сделать, установив каретку на нужную строку и нажав F9.

Visual Studio Debug

При установке точки останова в окне редактора кода будет выведена иконка напротив строки кода.

Клик левой кнопкой мыши по иконке приведет к удалению точки остановки, а для управления необходимо открыть контекстное меню (клик правой кнопкой).

Visual Studio Debug

Среди доступных действий также можно отключить и удалить все точки остановки. Те же действия возможно выполнить из вкладки Debug, либо по нажатию соответствующих горячих клавиш.

Visual Studio Debug

Работа с выводом отладчика

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

Visual Studio Debug

Посмотреть вывод всей возможной информации можно во вкладке Debug->Window.

Visual Studio Debug

Breakpoints – информация обо всех точках остановки в отлаживаемом проекте.

Visual Studio Debug

Visual Studio Debug

Watch – список наблюдаемых переменных. Переменные для наблюдения вносятся в список вручную и находятся там всегда, пока их не удалит разработчик.

Visual Studio Debug

Autos – переменные, с которыми идет работа в данный момент. Т.е. актуальные на момент исполнения кода переменные и их значения.

Locals – вывод локальных переменных и их значений.

Visual Studio Debug

Immediate – поиск и вывод значения переменной по символьному представлению. В отличие от Watch, не хранит список значений, а выводит значение по требованию.

Visual Studio Debug

Call Stack – стек вызовов. Показывает последовательность вызовов функций для отлаживаемого модуля до точки остановки.

Visual Studio Debug

Threads – вывод информации обо всех запущенных потоках отлаживаемого модуля. Из этого окна возможна работа с потоками через контекстное меню: остановка потоков, переход к исходному коду потока и т.д.

Visual Studio Debug

Modules – список загруженных модулей, необходимых для работы отлаживаемого (которые он подгружает для работы).

Visual Studio Debug

Processes – список процессов отлаживаемого модуля.

Visual Studio Debug

Memory – просмотр памяти отлаживаемого модуля в традиционном для любого hex-редактора виде.

Visual Studio Debug

Disassembly – просмотр ассемблерного листинга для отлаживаемого модуля. Очень хорошая возможность прямо из среды разработки посмотреть, как в итоге выглядит код на высокоуровневом языке.

Visual Studio Debug

Registers – вывод значений в регистрах

Visual Studio Debug

Что следует знать при работе c выводом отладчика

Информация в большинстве окон обновляется для каждой инструкции. Т.е. отладчик регистрирует и изменяет значения на новые. При этом измененные значения помечаются красным цветом.

Visual Studio Debug

Окно Watch поддерживает так называемые псевдопеременные. Своего рода макросы для определенных значений. Например, для вывода результата GetLastError после каждой строчки кода. Подробнее об этом можно прочитать здесь. Также Watch выполняет арифметические операции с переменными, а дляmanaged-кода может выполнять код.

Visual Studio Debug

Пошаговая отладка

Для того чтобы начать процесс отладки, необходимо поставить точку остановки в нужном месте и запустить модуль. Отладка станет доступна по достижению точки остановки. Также можно принудительно остановить выполнение модуля, в таком случае курсор автоматически переместится на код, который выполнялся до остановки. Но точка остановки при этом не установится.
Во время отладки в панели инструментов Visual Studio доступен Debug Toolbar. Если его нет, включить его можно, отметив элемент меню Debug во вкладке View->Toolbars.

Visual Studio Debug

Все кнопки в панели инструментов повторяют вкладку Debug, нас в данный момент интересует навигация по отлаживаемому коду. В качестве примера рассмотрим следующую ситуацию:

Visual Studio Debug

шаг со входом. (f11) Если отладка остановилась на вызове функции, шаг со входом необходим для того, чтобы остановить выполнение модуля внутри тела функции. Т.е. если внутри функции нет точки остановки, можно продолжить пошаговое выполнение, выполнив шаг со входом. Обратите внимание, в данном примере шаг со входом остановит выполнение программы внутри функции get_message, а не hello, т.к. сначала выполняется она. Т.е. шаг со входом в данном случае остановит выполнение модуля на строке 5.

шаг с обходом. (f10) Пошаговая отладка внутри функции. Не переходит внутрь функции при ее вызове, а выполняет как обычную инструкцию. При завершении функции останавливается на верхней в стеке вызовов. Вне зависимости от того, сколько функций вызывается на строчке, отладчик не прерывает внутри этих функций выполнение модуля. В примере следующий шаг будет на строке 16.

шаг с выходом. (Shift + f11) В этом случае отладчик остановит выполнение модуля после выхода из текущей функции, где происходит отладка. В данном примере будет выход из функции main и переключение на отладку кода CRT.

Visual Studio Debug

Во время пошаговой отладки важно также знать, что курсор можно передвинуть на необходимую строчку кода (Drag&Drop). Т.е. при желании заново отладить алгоритм не нужно перезапускать процесс отладки. Правда следует понимать, что в этом случае ожидаемое поведение программы не гарантировано. Разработчик должен отдавать отчет своим действиям. Например, в случае ниже программист получит ошибку, если передвинет курсор на строку 9, т.к. память для с еще не была выделена.

Visual Studio Debug

Заключение

Процесс отладки в Visual Studio является одним из самых простых, если сравнивать с другими IDE. В статье были рассмотрены общие средства отладки для различных технологий. Тем не менее, в зависимости от типа проекта, средства для отладки могут дополняться. Например, при отладке GPU-кода. Да и возможности по отладке пошли далеко вперед после Visual Studio 2008 в сторону упрощения. Быть в курсе последних событий поможет тематический раздел в MSDN.

Читайте также: