pascalabcnet/PABCNetHelp/ForEducation/PT4/debug.html

208 lines
15 KiB
HTML
Raw Permalink Normal View History

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<a name="main"></a>
<h1>Раздел отладки</h1>
<hr>
<p>В версии 4.9 задачника Programming Taskbook появились средства,
позволяющие выводить отладочную информацию непосредственно в окно
задачника (в специальный <i>раздел отладки</i>). Необходимость в
подобных дополнительных средствах возникает, прежде всего,
при работе с комплексом Programming Taskbook for MPI
при отладке
<i>параллельных программ</i>, поскольку для них нельзя использовать такие
стандартные средства отладки, как точки останова, пошаговое выполнение
программы и окна просмотра значений переменных. Следует также
отметить, что возможность вывода информации в раздел отладки
позволяет использовать задачник для написания и отладки параллельных
программ, не связанных с выполнением конкретных учебных заданий.
</p>
<p>Отладочные средства задачника могут оказаться полезными и для
обычных, непараллельных программ. В этом случае их можно применять в
качестве дополнения к средствам встроенного отладчика.
</p>
<p>Раздел отладки представляет собой одну или несколько
многострочных текстовых областей вывода. Он располагается под
основными разделами задачника и выводится на экран только в случае,
если в нем содержится какой-либо текст:
</p>
<blockquote>
<img border="0" src="gif\debug_1.png">
</blockquote>
<p>При демонстрационном запуске программы все процедуры, связанные
с разделом отладки, игнорируются, поэтому раздел отладки на экране не
отображается.
</p>
<p>Имеется возможность скрыть в окне задачника все его разделы, кроме
раздела отладки; для этого достаточно нажать клавишу пробела.
Повторное нажатие пробела восстанавливает в окне задачника ранее
скрытые разделы. Для скрытия/отображения основных разделов окна
задачника можно также использовать соответствующую команду
контекстного меню, связанного с разделом отладки. Скрыть все разделы
окна задачника, кроме раздела отладки, можно также программным
способом, вызвав процедуру HideTask.
</p>
<p>Прокрутка содержимого раздела отладки может осуществляться с
помощью вертикальной полосы прокрутки, расположенной у его правой
границы. Можно также использовать колесико мыши и клавиатурные
комбинации <b>Alt+Up</b>, <b>Alt+Down</b> (прокрутка на одну экранную строку),
<b>Alt+PgUp</b>, <b>Alt+PgDn</b> (прокрутка на 10 экранных строк),
<b>Alt+Home</b>, <b>Alt+End</b> (прокрутка к первой или последней строке
области вывода).
</p>
<p>Предусмотрена возможность изменения размера шрифта,
используемого в разделе отладки. Шрифт может изменяться от 7 до 14
пунктов с шагом 1. Для увеличения шрифта предназначена клавиатурная
комбинация <b>Alt+[+]</b>, для уменьшения &#151; комбинация <b>Alt+[&#150;]</b>.
Соответствующие команды имеются также в контекстном меню раздела
отладки. Информация о текущем размере шрифта сохраняется в файле
результатов и учитывается при последующих запусках программы.
</p>
<p>Для &laquo;непараллельных&raquo; заданий раздел отладки содержит
единственную область вывода. Для заданий по параллельному
программированию число областей вывода равно числу параллельных
процессов плюс 1; при этом в каждый момент времени в разделе отладки
отображается одна из областей. Если областей вывода больше одной, то в
нижней части раздела отладки выводится набор ярлычков, позволяющих
переключиться на любую из имеющихся областей вывода:
</p>
<blockquote>
<img border="0" src="gif\debug_2.png">
</blockquote>
<p>Ярлычки с номерами (от 0 до N&#150;1, где N &#151; количество
процессов) позволяют просмотреть содержимое области вывода, связанной
с процессом соответствующего ранга; ярлычок с символом
&laquo;*&raquo; позволяет просмотреть область вывода, содержащую
объединенный текст всех других областей:
</p>
<blockquote>
<img border="0" src="gif\debug_3.png">
</blockquote>
<p>Для переключения на нужную область вывода достаточно щелкнуть
мышью на соответствующем ярлычке. Кроме того, для последовательного
перебора ярлычков слева направо или справа налево можно использовать
комбинации <b>Alt+Right</b> и <b>Alt+Left</b> соответственно (перебор
осуществляется циклически). Можно также сразу перейти к нужной
области вывода, нажав соответствующую клавишу: для области
&laquo;*&raquo; &#151; клавишу <b>[*]</b>, для областей
&laquo;0&raquo;&#150;&laquo;9&raquo; &#151; цифровые клавиши
<b>0</b>&#150;<b>9</b>, а для областей &laquo;10&raquo;&#150;&laquo;35&raquo;
&#151; буквенные клавиши от <b>A</b> до <b>Z</b> (при выполнении
заданий по параллельному программированию максимально возможное
число процессов равно 36).
</p>
<p>Если в основных разделах окна задачника отсутствуют
прокручиваемые элементы или основные разделы являются скрытыми, то
дополнительную клавишу <b>Alt</b> в перечисленных выше клавиатурных
<b>Alt</b>-комбинациях можно не использовать.
</p>
<p>Отладочная информация, получаемая из
подчиненных процессов параллельной программы, предварительно
сохраняется в специальных
временных файлах в каталоге учащегося, поэтому она будет доступна для
просмотра, даже если на каком-либо этапе выполнения
программы произойдет зависание некоторых ее подчиненных процессов.
Отладочная информация, получаемая из главного процесса, выводится
непосредственно в раздел отладки.
</p>
<p>Количество отладочных строк для каждого процесса не должно
превышать 999; если некоторый процесс пытается вывести данные в
строку с номером, превышающим 999, то в связанной с этим процессом
области отладки выводится сообщение об ошибке, и последующий вывод
отладочных данных для этого процесса блокируется. Указанное
ограничение позволяет, в частности, избежать проблем, возникающих при
&laquo;бесконечном&raquo; выводе отладочной информации из какого-либо
зациклившегося подчиненного процесса во временный файл.
</p>
<p>Каждая экранная строка, отображаемая в разделе отладки, состоит из
служебной области и области данных. Ширина служебной области равна 6&nbsp;экранным позициям
для &laquo;непараллельных&raquo; заданий и 9&nbsp;позициям для заданий по параллельному программированию. Ширина
области данных равна 80 позициям.
</p>
<p>Служебная область состоит из следующих частей (см. рисунки,
приведенные выше):
</p>
<ul><li> <i>область нумерации процессов</i> (только для заданий по
параллельному программированию): 2 экранные позиции,
отводимые для ранга процесса, и символ &laquo;|&raquo;;
<li> <i>область нумерации строк</i>: 3 экранные позиции, отводимые
для номера строки данных, после которых следует символ
&laquo;&gt;&raquo; и символ пробела;
<li> <i>область признака сообщения об ошибке</i>: одна экранная
позиция, в которой может содержаться либо пробел (признак
обычного отладочного текста), либо символ &laquo;!&raquo;
(признак сообщения об ошибке).
</ul>
<p>Если в разделе отладки выводится текст, связанный со всеми
процессами параллельного приложения (этот текст связан с ярлычком
&laquo;*&raquo;), то нумерация строк для каждого процесса производится
независимо.
</p>
<p>При переключении между областями вывода, связанными с
различными процессами параллельного приложения, сохраняется номер
первой отображаемой строки (за исключением ситуации, когда в новой
области вывода отсутствует строка с требуемым номером; в этом случае в
новой области вывод осуществляется, начиная с первой строки данных).
Отмеченная особенность позволяет быстро просмотреть (и сравнить) один
и тот же фрагмент отладочных данных для различных процессов.
</p>
<p>Содержимое области вывода, отображаемой в разделе отладки, можно
копировать в буфер Windows; для этого предназначена стандартная
клавиатурная комбинация <b>Ctrl+C</b> и соответствующая команда
контекстного меню раздела отладки.
</p>
<p>Для вывода данных в раздел отладки предназначены процедуры Show и ShowLine.
Описания этих процедур приводятся
в разделе, посвященном <a href="IO.html#debug">типам и процедурам модуля PT4</a>.
</p>
<p>Возможность использования раздела отладки сохранена и в появившемся в версии 4.11
<a href="window.html#dynmode">режиме окна с динамической компоновкой</a>. Как и в окне с фиксированной компоновкой,
раздел отладки отображается ниже разделов с заданием, однако в данном случае
для всех разделов окна используется общая полоса прокрутки. В окне с динамической
компоновкой доступны почти все описанные выше действия по управлению разделом отладки,
в частности, настройка размера шрифта в разделе отладки, копирование содержимого раздела отладки
в буфер Windows, скрытие разделов окна с заданием.
</p>
<blockquote>
<img border="0" src="gif\debug_4.png">
</blockquote>
<p>В режиме с динамической компоновкой отсутствует возможность
просмотра областей вывода, связанных с отдельными процессами параллельной программы:
раздел отладки всегда содержит объединенный текст, полученный
из всех областей. Для просмотра содержимого отдельных областей вывода
следует переключиться в режим окна с фиксированной компоновкой, нажав
клавишу <b>F4</b>.
</p>
</body>
</html>