Programming Taskbook


E-mail:

Пароль:

Регистрация пользователя   Восстановление пароля

English

ЮФУ SMBU

Электронный задачник по программированию

©  М. Э. Абрамян (Южный федеральный университет, Университет МГУ-ППИ в Шэньчжэне), 1998–2024

 

Главная | Возможности | Раздел отладки

PrevNext


Раздел отладки

В версии 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. Описания этих процедур приводятся в разделах, посвященных использованию задачника для языков Pascal, C++, C#, Visual Basic .NET, F#, Python, Java, Ruby и Julia.

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

Начиная с версии 4.13, в режиме с динамической компоновкой реализована возможность просмотра областей вывода, связанных с отдельными процессами параллельной программы. Для выбора нужной области вывода можно использовать те же клавиши, что и в режиме с фиксированной компоновкой ([Left], [Right], [*], [0]–[9], [A]–[Z]), а также набор меток, расположенных в левом нижнем углу раздела отладки (метка, связанная с выбранной областью, имеет темно-серый фон):

Начиная с версии 4.14, в разделе отладки может отображаться дополнительная информация, связанная с заданием и содержащаяся в файле дополнений для данной группы заданий. Если при этом программа осуществляет отладочную печать, то для информации, полученной из файла дополнений, и для данных, выведенных программой, используются разные области вывода, помеченные метками «!» и «*» соответственно.


PrevNext

 

Рейтинг@Mail.ru

Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский

Последнее обновление:
01.01.2024