pascalabcnet/PABCNetHelp/ForEducation/PT4/debug.html

208 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>