|
Программирование >> Программирование с использованием ajax
Кнопка Stop (Останов)
Рис. 7.8. Внешний вид панели Debug после запуска приложения После запуска приложения три следующих за Start кнопки, которые были неактивными, становятся доступны и позволяют делать следующее: □ приостанавливать приложение и переходить в режим останова (режим Break); □ полностью останавливать приложение (без перехода в режим Break, т.е. просто выходить из приложения). □ запускать приложение заново. Пауза приложения является, пожалуй, простейшим способом для перехода в режим Break, но не позволяет выбирать точное место останова. Остановка наверняка будет происходить в наиболее пригодном для паузы месте в приложении, например, в месте запрашивания ввода данных от пользователя. Возможно, будет также удаваться переходить в режим Break и во время выполнения длительной операции или длинного цикла, но выбор точной точки остановки все равно будет происходить довольно-таки произвольно. В общем, гораздо лучше вместо этого использовать специальные точки останова. Точки останова Точка останова (breakpoint) представляет собой отметку в исходном коде, которая приводит к автоматическому переходу в режим Break. Точки останова доступны и в VS, и VCE, но в VS обладают большей гибкостью. Их можно настраивать для того, чтобы они позволяли приложению делать следующее. □ Переходить в режим Break при достижении точки останова. □ (Только в VS.) Переходить в режим Break при достижении точки останова только в случае, если булевское выражение равно true. □ (Только в VS.) Переходить в режим Break при достижении точки останова определенное количество раз. □ (Только в VS.) Переходить в режим Break при достижении точки останова в случае, если с момента последнего достижения точки останова значение переменной изменилось. а (Только в VS.) Выводить текст в окно Output или выполнять макрос (о котором упоминалось ранее в разделе Точки трассировки ). Выполнение всех этих действий возможно только в отладочных сборках. При компиляции рабочей сборки все точки останова игнорируются. Для добавления точек останова существует несколько способов. Простые точки останова, предусматривающие перевод приложения в режим Break при достижении соответствующей строки, добавляются щелчком левой кнопкой мыши в окрашенной в серый области слева от необходимой строки кода, а затем либо выполнением щелчка правой кнопкой мыши на этой строке и выбором в контекстном меню пункта BreakpointiInsert Breakpoint (Точка останова=>Вставить точку останова), либо выбором в стандартном меню Debug (Отладка) пункта Toggle Breakpoint (Включение/отключение точки останова), или же нажатием клавиши <F9>. На рис. 7.9 показан вари- ант со щелчком правой кнопкой мыши и выбором подходящего пункта в контекстном меню VS (в VCE это меню будет выглядеть немного по другому, а в частности, не будет включать пункта Insert Tracepoint (Вставить точку трассировки)). Refactor i Organize Uiings i Create Unit Tests... jJ, Insert Snippet... J, SunoundWith Ji J Go To Defmition Find All References Breakpoint i Run To Cursor Copy Piste Outlining Imert Breakpoint Insert Traoloint Puc. 7.9. Добавлени£ точки останова После этого точка останова отображается в виде красного круга рядом с указанной строкой кода, которая подсвечивается, как показано на рис. 7.10. static void Main (sec acgs) int[] testArray - ( 4, 7, 1, 2, 7, 3, 1, 8, 3, 9, 1, 9 }; int[] maxVallndices; int maxVal - Maxima(testArray, out maxVallndices); cii .WriteLine ( M- >:iimun vnlue 0> found ar -leiwnr in lices: maxVal) ; foreach (inr index in maxVallndices) Console. UriteLxnedndexi Coiiao le. ReadKey () ; Puc. 7.10. Отображение точки останова Материал, излагаемый в остальной части настоящего раздела, касается только VS, но не VCE. Поэтому те, кто использует VCE, могут пропустить всю остальную часть этого раздела и перейти сразу же к следующему разделу, который называется Другие способы для перехода в режим останова В VS еще можно просматривать информацию о точках останова с помощью окна Breakpoints (о том, как оно отображается, уже рассказывалось ранее в этой главе). Это окно можно применять также и для отключения точек останова (снимая отметки, отображающиеся слева от их описания; отключенные точки останова будут иметь вид незакрашенных красных кружков), для удаления точек останова и для редактирования их свойств. Столбцы Condition (Условие) и Hit Count (Количество прохождений), отображающиеся в этом окне по умолчанию, являются лишь двумя из всех доступных столбцов, но зато самыми полезными. Редактировать содержащиеся в них свойства можно путем выполнения щелчка правой кнопкой мыши на требуемой точке (как в этом окне, так и непосредственно в окне кода) и выбора в контекстном меню, соответственно, либо пункта Condition (Условие), либо пункта Hit Count (Количество прохождений). Выбор пункта Condition приводит к отображению диалогового окна Breakpoint Condition (Условие точки останова), показанного на рис. 7.11. Briakpotnt Condition When the breakpoint location и reached, the expression is evaluated and the breakpoint is hit only Г the expression is true or has changed. 15] Condition: me>Val > 4 Is true Puc. 7.11. Диалоговое окно Breakpoint Condition В этом диалоговом окне можно вводить любое булевское выражение, в котором задействованы любые переменные, лежащие в области видимости данной точки останова. На рис. 7.11 показано выражение, согласно которому точка останова должна срабатывать при ее достижении только в том случае, если значение maxVal больше 4. Дополнительно можно включить проверку этого выражения на предмет изменения, и точка останова будет активизироваться только в таком случае. Выбор пункта Hit Count приводит к отображению диалогового окна Breakpoint Hit Count (Количество прохождений точки останова), как показано на рис. 7.12. Breakpoint Hit Count А breakpoint is hit when the breakpoint location is reached and the condition IS satisfied. The hit count Is the number of times the breakpoint has been hit. When the breakpoint is hit [Mc k when the h co int is cqim Current hit count 0 Puc. 7.12. Диалоговое окно Breakpoint Hit Count В этом диалоговом окне можно задать количество проходов точки останова, после которого она должна срабатывать. В раскрывающемся списке предлагаются следующие варианты: □ Break always (Переход в режим останова должен происходить всегда); □ Break when the hit count is equal to (Переход в режим останова должен происходить только тогда, когда количество прохождений равно); □ Break when the hit count is a multiple of (Переход в режим останова должен происходить только тогда, когда количество проходов кратно); □ Break when the hit count is greater than or equal to (Переход в режим останова должен происходить только тогда, когда количество проходов больше или равно). Выбираемый в этом списке вариант в сочетании со значением, которое указывается в расположенном напротив списка текстовом поле, определяют поведение точки останова. Указывать количество проходов удобно в длинных циклах, в которых может потребоваться, чтобы переход в режим останова происходил, скажем, после первых 5000 итераций. Если бы такой возможности не было, переход в режим останова и перезапуск 5000 раз превратился бы в проблему.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |