Томский политехнический университет
Опубликован: 23.01.2013 | Доступ: свободный | Студентов: 1157 / 192 | Длительность: 12:09:00
Лекция 12:

Отладка приложений в Visual Studio 2010

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

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

  • С помощью клавиши F9;
  • Через пункт меню Debug - Toggle Breakpoint;
  • И самый простой способ - это щелкнуть дважды левой кнопкой мыши на нужной строке, в окне редактора кода внутри затененной области вдоль левого края окна документа.

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

 Установка точки останова в Visual Studio 2010

увеличить изображение
Рис. 19.3. Установка точки останова в Visual Studio 2010

Запуск отладчика

Для того что бы запустить режим отладки можно использовать несколько способов.

  • Способ первый. С помощью специальной панели инструментов, как показано на Рис. 19.4;
     Запуск режима отладки с панели инструментов

    Рис. 19.4. Запуск режима отладки с панели инструментов
  • Способ второй. Из меню Debug с помощью пункта Start Debugging (Рис. 19.5);
     Запуск режима отладки из меню Debug

    Рис. 19.5. Запуск режима отладки из меню Debug
  • Способ третий. С помощью клавиши F5.

После запуска режима отладки, появится курсор отладки, который остановится напротив первой точки останова (Рис. 19.6).

 Курсор отладки в VIsual Studio

увеличить изображение
Рис. 19.6. Курсор отладки в VIsual Studio

Пошаговое выполнение программы

Для пошаговой отладки используют специальную панель инструментов (Рис. 19.7).

 Специальная панель инструментов отладки

Рис. 19.7. Специальная панель инструментов отладки

Или набор горячих клавиш (которые дублируют работу специальной панели инструментов), список которых представлен ниже:

  • Continue (F5) - продолжить выполнение программы.
  • Stop debugging (Shift+F5) - остановить отладку. При этом остановится и выполнение программы.
  • Restart (Ctrl+Shift+F5) - перезапустить программу. Выполнение программы будет прервано и запустится заново;
  • Show Next Statement (Alt + Num *) - показать следующий оператор, т.е переместить курсор редактора кода в курсор пошагового выполнения;
  • Step Into (F11) - выполнить очередной оператор. Если это метод, то перейти в начало этого метода, чтобы начать отладку;
  • Step Over (F10) - выполнить очередной оператор. Если это метод, то он будет полностью выполнен, т.е. курсор выполнения не будет входить внутрь метода;
  • Step out (Shift + F11) - выйти из метода.

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

  • Autos;
  • Locals;
  • Watch;
  • Immediate;
  • Threads;
  • Parallel Task;
  • Parallel Stacks.
Окно Autos

Окно Autos (Рис. 19.8) используется для того чтобы, просматривать значения, связанные с той строкой кода, на которой находится курсор отладки. Это окно отображает значения всех переменных и выражений, имеющихся в текущей выполняющейся строке кода или в предыдущей строке кода. Содержит следующие столбцы:

  • Name - название переменной;
  • Value - значение переменной;
  • Type - тип переменной.
 Окно Autos

увеличить изображение
Рис. 19.8. Окно Autos
Окно Locals

Окно Locals (Рис. 19.9) отображает все переменные и их значения для текущей области видимости отладчика, что дает представление обо всех переменных, которые используются в текущем выполняющемся методе. Переменные в этом окне автоматически настраиваются отладчиком. Данное окно содержит следующие столбцы:

  • Name - название переменной;
  • Value - значение переменной;
  • Type - тип переменной.
 Окно Locals

увеличить изображение
Рис. 19.9. Окно Locals
Окно Watch

Окно Watch или окно контрольных значений (Рис. 19.10) - позволяет настраивать собственный список переменных и выражений, которые необходимо отслеживать. Всего доступно четыре окна Watch (Watch 1, Watch 2, Watch 3 и Watch 4), что позволяет выделить в четыре списка переменные и выражения, данную возможность удобно использовать в том случае, если каждый список относится к отдельной области видимости приложения. Переменные или выражение в окно Watch добавляются или из редактора кода, или из окна QuickWatch. Если нужно добавить в окно Watch элемент из редактора кода, то нужно выделить нужную переменную или выражение, щелкнуть по ней правой кнопкой мыши и выбирать пункт Add Watch. Также можно перетаскивать, с помощью мыши, выделенный элемент в окно Watch. Данное окно содержит следующие столбцы:

  • Name - название переменной;
  • Value - значение переменной;
  • Type - тип переменной.
 Окно Watch

Рис. 19.10. Окно Watch
Окно Immediate

Окно Immediate или непосредственное выполнение (Рис. 19.11) - предназначено для ручного ввода и выполнения команд. Это окно появляется автоматически при прерывании работы программы в точках останова программы. Для выполнения команды или оператора необходимо написать команду и нажать клавишу <Enter>.

 Окно Immediate

Рис. 19.11. Окно Immediate
Окно Threads

Окно Threads (Рис. 19.12) - позволяет просматривать и управлять всеми запущенными потокам на различных этапах отладки приложения.

 Окно Threads

увеличить изображение
Рис. 19.12. Окно Threads

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

Таблица 19.3. Столбцы окна отладки Threads
Имя столбца Описание
Флаги Показывает, какие потоки помечены, и позволяет помечать потоки и снимать с них метки.
Значки Желтая стрелка указывает активный поток. Контур стрелки указывает поток, где выполнение было передано в отладчик. Белая стрелка указывает прерванную задачу, т.е. задачу, которая была текущей во время вызова отладчика. Значок паузы указывает поток, замороженный пользователем.
ID Столбец содержит идентификационные номера всех потоков.
Managed ID В столбце содержаться управляемые идентификационные номера управляемых потоков.
Category В данном столбце потоки классифицируются по категориям: потоки пользовательского интерфейса, обработчики удаленного вызова процедур (RPC) и рабочие потоки. Особая категория идентифицирует главный поток приложения.
Name Столбец, в котором для каждого потока указывается имя, если оно имеется, или значение <No Name>.
Location В данном столбце показывается, где поток выполняется. Можно развернуть это расположение, чтобы отобразить полный стек вызова для потока.
Priority Столбец содержит приоритет потока, назначенный системой каждому потоку.
Affinity Mask Дополнительный столбец, который обычно скрыт. В этом столбце показывается маска сходства процессора для каждого потока. В многопроцессорной системе маска сходства определяет, какой процессор, в каком потоке может работать.
Suspended Столбец содержит счетчик приостановок. Этот счетчик определяет, может ли поток выполняться.
Владимир Каширин
Владимир Каширин

Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010".

При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п.

Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010.