Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010". При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п. Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010. |
Отладка приложений в Visual Studio 2010
Отладка приложения в Visual Studio 2010
Существуют два способа запуска режима отладки в Visual Studio, первый - запуск из меню Debug и второй - запуск с помощью соответствующей панели инструментов. Оба способа - предоставляют доступ к запуску сеансов отладки, пошаговому прохождению кода, управлению точками останова, а также и ко многим функциональным возможностям отладки в Visual Studio. Имеются два состояния меню отладки (Debug):
- Состояние покоя (неактивное);
- Режим отладки.
В состоянии покоя меню Debug (Рис. 19.1) предоставляет возможности для запуска сеанса отладки, прикрепления к выполняющемуся процессу и для доступа к некоторым из отладочных окон. В Табл. 19.1 перечислены все функциональные возможности, имеющиеся в меню Debug в состоянии покоя.
Элемент меню | Описание |
---|---|
Windows | Breakpoints | Открывает в интегрированной среде окно Breakpoints, которое дает доступ ко всем точкам останова данного решения. |
Windows | Output | Показывает в интегрированной среде окно Output. Окно Output - это бегущий журнал множества сообщений, выдаваемых интегрированной средой, компилятором и отладчиком. Поэтому эта информация относится не только к сеансу отладки |
Windows | Immediate | Открывает в интегрированной среде окно Immediate, которое позволяет выполнять команды. |
Start Debugging | Запускает приложение в режиме отладки |
Start Without Debugging | Запускает приложение без подключения отладчика к выполняющемуся процессу. В этом режиме разработчик видит то, что увидит пользователь (вместо того, чтобы выходить в интегрированную среду при ошибках и в точках останова) |
Attach to Process | Позволяет прикрепить отладчик к выполняющемуся процессу (исполняемому файлу). Например, если запущено приложение без отладки, то можете потом прикрепиться к этому выполняющемуся процессу и начать отладку |
Exceptions | Открывает диалоговое окно Exceptions, которое позволяет выбрать способ останова отладчика для каждого исключительного состояния |
Step Into | Запускает приложение в режиме отладки. Для большинства проектов выбор команды Step Into означает вызов отладчика на первой выполняемой строке приложения. Таким образом, можно войти в приложение с первой строки |
Step Over | Когда вы не находитесь в сеансе отладки, то команда Step Over просто запускает приложение точно так же, как это сделала бы кнопка Run |
Toggle Breakpoint | Включает или выключает точку останова на текущей (активной) строке кода текстового редактора. Эта опция неактивна, если в интегрированной среде нет активного кодового окна |
New Breakpoint | Break at Function | Активирует диалоговое окно New Breakpoint позволяющее указать имя функции, для которой необходимо создать точку останова. |
New Breakpoint | New Data Breakpoint | Эта опция доступна только для приложений С++, позволяет определить точку останова, которая выходит в интегрированную среду тогда, когда изменяется значение по определенному адресу в памяти |
Delete All Breakpoints | Удаляет все точки останова из текущего решения |
Disable All Breakpoints | Деактивирует (без удаления) все точки останова текущего решения |
Когда отладчик запущен, то состояние меню Debug изменяется, в нем становятся активными несколько дополнительных опции. Эти опции включают: функции перемещения по коду, перезапуск сеанса и доступ к дополнительным окнам отладки и т.д. На Рис. 19.2 показано меню Debug во время сеанса отладки. В Табл. 19.2 представлены элементы меню Debug в состоянии отладки.
Элемент меню | Описание |
---|---|
Windows | Breakpoints | Позволяет открыть окно Breakpoints во время сеанса отладки. |
Windows | Output | Открывает окно Output во время активного сеанса отладки для того, чтобы можно было читать выходные сообщения, выдаваемые компилятором и отладчиком. |
Windows | Parallel Task | Одно из нововведений в Visual Studio 2010. Подробнее о данном нововведение в подразделе лекции "Окно Parallel Task" . |
Windows | Parallel Stacks | Одно из нововведений в Visual Studio 2010 Подробнее о данном нововведение в подразделе лекции "Окно Parallel Stacks". |
Windows | Watch | Открывает одно из нескольких окон контрольных значений интегрированной среды. Окна контрольных значений представляют элементы и выражения, за которыми вы наблюдаете в течение сеанса отладки. |
Windows | Autos | Открывает окно Autos. Это окно показывает переменные (и их значения) в текущей и предыдущей строках кода. |
Windows | Locals | Открывает в интегрированной среде окно Locals, которое показывает переменные в локальной области действия (функции). |
Windows | Immediate | Открывает окно Immediate, в котором вы можете выполнить команду. |
Windows | Call Stack | Открывает список функций, которые имеются в стеке. Также указывает текущий кадр стека (функцию). Выделенный элемент - это то, что определяет содержимое окон Locals. Autos и окон контрольных значений. |
Windows | Threads | Показывает в интегрированной среде окно Threads. Здесь можно просматривать потоки отлаживаемого приложения и управлять ими. |
Windows | Modules | Показывает в интегрированной среде окно Modules. Это окно дает список dll и ехе-файлов, используемых приложением. |
Windows | IntelliTrace Events | Одно из нововведений в Visual Studio 2010. По умолчанию IntelliTrace собирает информацию для выбранных событий IntelliTrace. Когда приложение входит в режим приостановки выполнения, можно воспользоваться представлением IntelliTrace Events, чтобы просмотреть собранные события диагностики. |
Windows | IntelliTrace Calls | Одно из нововведений в Visual Studio 2010. Когда IntelliTrace выполняет сбор сведений о вызовах, эти сведения можно просматривать в окне IntelliTrace Calls. |
Windows | Processes | Показывает в интегрированной среде окно Processes. Это окно отображает список процессов, к которым прикреплен сеанс отладки. |
Windows | Memory | Открывает окно Memory для просмотра используемой приложением памяти. Это работает только при включенной (в диалоговом окне Options) отладке на уровне адресов. |
Windows | Disassembly | Открывает окно Disassembly. Это окно показывает ассемблерный код, соответствующий командам компилятора. Данная функция работает только при включенной (в диалоговом окне Options) отладке на уровне адресов. |
Windows | Registers | Открывает окно Registers, чтобы вы могли видеть изменения значений регистров при прохождении по коду. Данная функция работает только при включенной (в диалоговом окне Options) отладке на уровне адресов. |
Continue | Продолжает выполнение приложения после выхода в интегрированную среду разработки. Приложение продолжает выполняться с активной строки кода. |
Break All | Позволяет прервать приложение вручную (без использования точки останова) во время сеанса отладки Приложение прервется на следующей исполняемой строке. Эта возможность полезна в том случае, когда нужно получить доступ к отладочной информации. |
Stop Debugging | Останавливает режим отладки. Прерывает также и отлаживаемый процесс. |
Detach All | Открепляет отладчик от выполняющегося процесса. Это позволяет приложению продолжать выполнение после того, как отладчик свою работу закончил. |
Terminate All | Останавливает отладку и прекращает все процессы, к которым вы прикреплены. |
Restart | Останавливает и перезапускает его сеанс отладки. Аналогично последовательному нажатию кнопок Stop Debugging и Start Debugging. |
Attach to Process | Позволяет прикрепить активный сеанс отладки к одному дополнительному процессу. |
Exceptions | Активирует диалог Exceptions, который позволяет управлять выходом в IDE по конкретным типам исключительных состояний .NET Framework и других библиотек. |
Step Into | Приводит к продвижению отладчика на одну строку. |
Step Over | Работает точно так же, как Step Into, но с одной важной разницей: если используете пропуск функции по Step Over, то строка вызова функции будет выполнена (и функция тоже), и отладчик установит следующую строку за вызовом функции в качестве следующей отлаживаемой строки. |
Step Out | Указывает отладчику выполнить текущую функцию, а затем выйти назад в отладчик (после выполнения функции). Эта функция полезна тогда, когда осуществляется вход в функцию, а затем нужно, чтобы эта функция выполнилась и вернула в отладчик после ее завершения. |
QuickWatch | Активирует окно QuickWatch. Это окно отображает значение одной, конкретной переменной (или выражения). |
Toggle Breakpoint | Включает и выключает активную точку останова. |
New Breakpoint | Активирует диалоговое окно New Breakpoint. |
Delete All Break - 'points | Удаляет все точки останова в вашем решении. |