Раздел отладки
Раздел отладки
В версии 4.9 задачника Programming Taskbook появились средства, позволяющие выводить отладочную информацию непосредственно в окно задачника (в специальный раздел отладки). Необходимость в подобных дополнительных средствах возникает, прежде всего, при работе с комплексом Programming Taskbook for MPI при отладке параллельных программ, поскольку для них нельзя использовать такие стандартные средства отладки, как точки останова, пошаговое выполнение программы и окна просмотра значений переменных. Следует также отметить, что возможность вывода информации в раздел отладки позволяет использовать задачник для написания и отладки параллельных программ, не связанных с выполнением конкретных учебных заданий.
Отладочные средства задачника могут оказаться полезными и для обычных, непараллельных программ. В этом случае их можно применять в качестве дополнения к средствам встроенного отладчика.
Раздел отладки представляет собой одну или несколько многострочных текстовых областей вывода. Он располагается под основными разделами задачника и выводится на экран только в случае, если в нем содержится какой-либо текст:
При демонстрационном запуске программы все процедуры, связанные с разделом отладки, игнорируются, поэтому раздел отладки на экране не отображается.
Имеется возможность скрыть в окне задачника все его разделы, кроме раздела отладки; для этого достаточно нажать клавишу пробела. Повторное нажатие пробела восстанавливает в окне задачника ранее скрытые разделы. Для скрытия/отображения основных разделов окна задачника можно также использовать соответствующую команду контекстного меню, связанного с разделом отладки. Скрыть все разделы окна задачника, кроме раздела отладки, можно также программным способом, вызвав процедуру HideTask.
Прокрутка содержимого раздела отладки может осуществляться с помощью вертикальной полосы прокрутки, расположенной у его правой границы. Можно также использовать колесико мыши и клавиатурные комбинации Alt+Up, Alt+Down (прокрутка на одну экранную строку), Alt+PgUp, Alt+PgDn (прокрутка на 10 экранных строк), Alt+Home, Alt+End (прокрутка к первой или последней строке области вывода).
Предусмотрена возможность изменения размера шрифта, используемого в разделе отладки. Шрифт может изменяться от 7 до 14 пунктов с шагом 1. Для увеличения шрифта предназначена клавиатурная комбинация Alt+[+], для уменьшения -- комбинация Alt+[-]. Соответствующие команды имеются также в контекстном меню раздела отладки. Информация о текущем размере шрифта сохраняется в файле результатов и учитывается при последующих запусках программы.
Для непараллельных" заданий раздел отладки содержит единственную область вывода. Для заданий по параллельному программированию число областей вывода равно числу параллельных процессов плюс 1; при этом в каждый момент времени в разделе отладки отображается одна из областей. Если областей вывода больше одной, то в нижней части раздела отладки выводится набор ярлычков, позволяющих переключиться на любую из имеющихся областей вывода:
Ярлычки с номерами (от 0 до N-1, где N -- количество процессов) позволяют просмотреть содержимое области вывода, связанной с процессом соответствующего ранга; ярлычок с символом *" позволяет просмотреть область вывода, содержащую объединенный текст всех других областей:
Для переключения на нужную область вывода достаточно щелкнуть мышью на соответствующем ярлычке. Кроме того, для последовательного перебора ярлычков слева направо или справа налево можно использовать комбинации Alt+Right и Alt+Left соответственно (перебор осуществляется циклически). Можно также сразу перейти к нужной области вывода, нажав соответствующую клавишу: для области *" -- клавишу [*], для областей "0"-"9" -- цифровые клавиши 0-9, а для областей "10"-"35" -- буквенные клавиши от A до Z (при выполнении заданий по параллельному программированию максимально возможное число процессов равно 36).
Если в основных разделах окна задачника отсутствуют прокручиваемые элементы или основные разделы являются скрытыми, то дополнительную клавишу Alt в перечисленных выше клавиатурных Alt-комбинациях можно не использовать.
Отладочная информация, получаемая из подчиненных процессов параллельной программы, предварительно сохраняется в специальных временных файлах в каталоге учащегося, поэтому она будет доступна для просмотра, даже если на каком-либо этапе выполнения программы произойдет зависание некоторых ее подчиненных процессов. Отладочная информация, получаемая из главного процесса, выводится непосредственно в раздел отладки.
Количество отладочных строк для каждого процесса не должно превышать 999; если некоторый процесс пытается вывести данные в строку с номером, превышающим 999, то в связанной с этим процессом области отладки выводится сообщение об ошибке, и последующий вывод отладочных данных для этого процесса блокируется. Указанное ограничение позволяет, в частности, избежать проблем, возникающих при бесконечном" выводе отладочной информации из какого-либо зациклившегося подчиненного процесса во временный файл.
Каждая экранная строка, отображаемая в разделе отладки, состоит из служебной области и области данных. Ширина служебной области равна 6 экранным позициям для непараллельных" заданий и 9 позициям для заданий по параллельному программированию. Ширина области данных равна 80 позициям.
Служебная область состоит из следующих частей (см. рисунки, приведенные выше):
область нумерации процессов (только для заданий по параллельному программированию): 2 экранные позиции, отводимые для ранга процесса, и символ |"; область нумерации строк: 3 экранные позиции, отводимые для номера строки данных, после которых следует символ ">" и символ пробела; область признака сообщения об ошибке: одна экранная позиция, в которой может содержаться либо пробел (признак обычного отладочного текста), либо символ "!" (признак сообщения об ошибке). Если в разделе отладки выводится текст, связанный со всеми процессами параллельного приложения (этот текст связан с ярлычком "*"), то нумерация строк для каждого процесса производится независимо.
При переключении между областями вывода, связанными с различными процессами параллельного приложения, сохраняется номер первой отображаемой строки (за исключением ситуации, когда в новой области вывода отсутствует строка с требуемым номером; в этом случае в новой области вывод осуществляется, начиная с первой строки данных). Отмеченная особенность позволяет быстро просмотреть (и сравнить) один и тот же фрагмент отладочных данных для различных процессов.
Содержимое области вывода, отображаемой в разделе отладки, можно копировать в буфер Windows; для этого предназначена стандартная клавиатурная комбинация Ctrl+C и соответствующая команда контекстного меню раздела отладки.
Для вывода данных в раздел отладки предназначены процедуры Show и ShowLine. Описания этих процедур приводятся в разделе, посвященном типам и процедурам модуля PT4.
Возможность использования раздела отладки сохранена и в появившемся в версии 4.11 режиме окна с динамической компоновкой. Как и в окне с фиксированной компоновкой, раздел отладки отображается ниже разделов с заданием, однако в данном случае для всех разделов окна используется общая полоса прокрутки. В окне с динамической компоновкой доступны почти все описанные выше действия по управлению разделом отладки, в частности, настройка размера шрифта в разделе отладки, копирование содержимого раздела отладки в буфер Windows, скрытие разделов окна с заданием.
В режиме с динамической компоновкой отсутствует возможность просмотра областей вывода, связанных с отдельными процессами параллельной программы: раздел отладки всегда содержит объединенный текст, полученный из всех областей. Для просмотра содержимого отдельных областей вывода следует переключиться в режим окна с фиксированной компоновкой, нажав клавишу F4.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
15.2. Компиляция для отладки
15.2. Компиляция для отладки Для использования отладчика исходного кода, отлаживаемый исполняемый файл должен быть откомпилирован с опцией компилятора -g. Эта опция заставляет компилятор внедрять в объектный код дополнительные отладочные идентификаторы; то есть
15.4. Программирование для отладки
15.4. Программирование для отладки Имеется множество методик для упрощения отладки исходного кода, от простых до сложных. В данном разделе мы рассмотрим ряд из
15.4.1. Код отладки времени компилирования
15.4.1. Код отладки времени компилирования Несколько методик относятся к самому исходному
15.7. Правила отладки
15.7. Правила отладки Отладка не является «черной магией». Ее принципы и методики могут быть изучены и последовательно применены каждым. С этой целью мы рекомендуем книгу Debugging Дэвида Эганса (David J. Agans; ISBN: 0-8144-7168-4). У книги есть веб-сайт[187], на котором обобщены правила и
2. Средства активной отладки
2. Средства активной отладки 2.1. Архитектура средств активной отладки В общем случае кросс-отладчик состоит из 2 основных модулей: менеджера на инструментальной платформе и агента отладки на целевой стороне. Менеджер служит для обеспечения пользовательского интерфейса,
2.1. Архитектура средств активной отладки
2.1. Архитектура средств активной отладки В общем случае кросс-отладчик состоит из 2 основных модулей: менеджера на инструментальной платформе и агента отладки на целевой стороне. Менеджер служит для обеспечения пользовательского интерфейса, то есть для приема команд, их
Время отладки
Время отладки По какой-то неведомой причине разработчики не считают отладку естественной частью процесса разработки. Им кажется, что отладка сродни физиологической потребности: ей занимаются просто потому, что это неизбежно. Однако время отладки обходится фирме ровно в
Приложение В Техника отладки
Приложение В Техника отладки Это приложение содержит некоторые рекомендации и описание методов отладки сетевых приложений. Ни один из приведенных методов не является панацеей от всех возможных проблем, однако существует множество инструментальных средств, с которыми
21.1.7. Опции отладки
21.1.7. Опции отладки Если вы хотите использовать отладчик, например gdb, для отладки своей программы, укажите опцию -g при вызове компилятора. Эта опция помещает в откомпилированный файл отладочную информацию, вследствие чего существенно увеличивается объем файла. Поэтому
22.3. Пример отладки программы
22.3. Пример отладки программы Давайте напишем программу, которая обнуляет элементы массива a[]. Да, программа ничего полезного не делает, но на ее примере можно продемонстрировать работу с отладчиком gdb.Вот листинг программы:Листинг 22.1. Демонстрационная программа,
4. Регистры отладки
4. Регистры отладки Это очень интересная группа регистров, предназначенных для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит восемь регистров отладки, но реально из них используются только
Комбинации клавиш для отладки
Комбинации клавиш для отладки В табл. 9.1 перечислены комбинации клавиш, которые используются при отладке. Подробно каждую из них я рассмотрю дальше в настоящей главе.Построчное выполнение кода (пошаговое) <F8>Построчное выполнение кода без построчного выполнения
Основные приемы отладки
Основные приемы отладки В режиме паузы поток выполнения программы не рассматривается как нечто "замороженное" только потому, что программа выполняется. VBA оказывается достаточно сообразительным, чтобы позволить вносить коррективы прямо по ходу дела. В частности, в
А.2.6. Выбор средств отладки
А.2.6. Выбор средств отладки Мы рассмотрели четыре разных, несовместимых друг с другом средства диагностирования неправильных случаев использования динамической памяти. Ни одно из средств не гарантирует нахождение всех ошибок, но это лучше, чем полное отсутствие
Программы для отладки приложений
Программы для отладки приложений В этой главе речь пойдет об утилитах, необходимых для успешного программирования приложений для мобильных устройств. Пожалуй, самой главной из этих утилит является программный эмулятор Device Emulator. Кроме того, в состав Visual Studio 2005 входит
46. Регистры отладки
46. Регистры отладки Это очень интересная группа регистров, предназначенных для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит восемь регистров отладки, но реально из них используются только