<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/Sisyphus/Alterator/debug</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug</link>
<description>History/revisions of FreeSource/AltLinux/Sisyphus/Alterator/debug</description>
<language>en-us</language>
<item>
<title>2008-06-03 14:10:53</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-06-03+14%3A10%3A53</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.sisyphus.alterator.debug" href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-06-03+14%3A10%3A53">2008-06-03 14:10:53&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug">2008-06-23 13:00:58&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/Alterator/debug" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h5528-1">&lt;/a>&lt;h3>Работа с&amp;nbsp;модулем без&amp;nbsp;установки в&amp;nbsp;систему&lt;/h3>
Все&amp;nbsp;компоненты alterator используют особые переменные среды для&amp;nbsp;определения местоположения основных рабочих каталогов:&lt;br />
&lt;ul>&lt;li> &lt;strong>ALTERATOR_LIBDIR&lt;/strong> &amp;mdash; бакенды и&amp;nbsp;иные архитектурно-зависимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/lib/alterator&lt;/em>
&lt;/li>&lt;li> &lt;strong>ALTERATOR_DATADIR&lt;/strong> &amp;mdash; описания интерфейсов и&amp;nbsp;иные архитектурно-независимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/share/alterator&lt;/em>.&lt;/li>&lt;/ul>
Для&amp;nbsp;обоих переменных допустимо перечисление нескольких каталогов через двоеточие &amp;ndash; в&amp;nbsp;этом случае поиск производится последовательно в&amp;nbsp;порядке указания имён. Например, если &lt;strong>ALTERATOR_DATADIR="/a:/b"&lt;/strong>, то&amp;nbsp;файл &lt;em>ui.scm&lt;/em> будет искаться сначала по&amp;nbsp;адресу &lt;em>/a/ui.scm&lt;/em>, а&amp;nbsp;потом &lt;em>/b/ui.scm&lt;/em>.&lt;br />
Для&amp;nbsp;удобства использования у&amp;nbsp;утилит командной строки alterator существует ключ '-l', который добавляет текущий каталог в&amp;nbsp;начало списка каталогов в&amp;nbsp;ALTERATOR_LIBDIR и&amp;nbsp;ALTERATOR_DATADIR.&lt;br />
Таким образом, находясь в&amp;nbsp;модуле, можно отлаживать и&amp;nbsp;запускать его&amp;nbsp;не&amp;nbsp;устанавливая в&amp;nbsp;систему.&lt;br />
&lt;ul>&lt;li> &lt;strong>командная строка&lt;/strong>: &lt;em>alterator-cmdline -l &amp;lt;запрос&amp;gt;&lt;/em> 
&lt;/li>&lt;li> &lt;strong>GUI интерфейс&lt;/strong>: &lt;em>/usr/sbin/alterator-standalone -l &amp;lt;имя&amp;gt;.desktop&lt;/em>
&lt;/li>&lt;li> &lt;strong>HTML интерфейс&lt;/strong>: &lt;em>/usr/sbin/configd -l&lt;/em>&lt;/li>&lt;/ul>
Во&amp;nbsp;третьем  случае сервер configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;br />
&lt;span class="cite">Замечание: на&amp;nbsp;данный момент поиск локальных desktop-файлов работает только при&amp;nbsp;использовании standalone.layout. Во&amp;nbsp;всех остальных случаях придётся установить desktop-файл в&amp;nbsp;систему. Причина &amp;ndash; пока не&amp;nbsp;очень понятно как&amp;nbsp;сделать алгоритм объединяющий все&amp;nbsp;desktop-файлы максимально оптимальным при&amp;nbsp;использовании нескольких каталогов.&lt;/span>&lt;br />
&lt;em>Ещё: /usr/bin/alterator-standalone водится в&amp;nbsp;пакете alterator-standalone-usermode, /usr/sbin/alterator-standalone &amp;mdash; в&amp;nbsp;alterator-standalone&lt;/em>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-18 11:20:02</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-18+11%3A20%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-18+11%3A20%3A02">2008-03-18 11:20:02&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-06-03+14%3A10%3A53">2008-06-03 14:10:53&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> &lt;strong>командная строка&lt;/strong>: &lt;em>alterator-cmdline -l &amp;lt;запрос&amp;gt;&lt;/em> 
&lt;/li>&lt;li> &lt;strong>GUI интерфейс&lt;/strong>: &lt;em>/usr/sbin/alterator-standalone -l &amp;lt;имя&amp;gt;.desktop&lt;/em>
&lt;/li>&lt;li> &lt;strong>HTML интерфейс&lt;/strong>: &lt;em>/usr/sbin/configd -l&lt;/em>&lt;/li>&lt;/ul>
Во&amp;nbsp;третьем  случае сервер configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;ul>&lt;li> &lt;strong>командная строка&lt;/strong>: &lt;em>alterator-cmdline -l &amp;lt;запрос&amp;gt;&lt;/em> или&amp;nbsp;&lt;em>alterator -l -c cmdline.layout &amp;lt;запрос&amp;gt;&lt;/em>
&lt;/li>&lt;li> &lt;strong>GUI интерфейс&lt;/strong>: &lt;em>/usr/sbin/alterator-standalone -l &amp;lt;имя&amp;gt;.desktop&lt;/em>  или&amp;nbsp;&lt;em>alterator -l -c standalone.layout &amp;lt;имя&amp;gt;.desktop&lt;/em>
&lt;/li>&lt;li> &lt;strong>HTML интерфейс&lt;/strong>: &lt;em>alterator -l -c configd.layout&lt;/em>&lt;/li>&lt;/ul>
Во&amp;nbsp;третьем  случае (&lt;em>alterator -l -c configd.layout&lt;/em>) демон configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;a name="h5528-1">&lt;/a>&lt;h3>Просмотр сообщений на&amp;nbsp;шине в&amp;nbsp;configd &lt;/h3>
Очень полезным бывает взглянуть на&amp;nbsp;то что&amp;nbsp;доходит и&amp;nbsp;исходит от/из configd при&amp;nbsp;работе с&amp;nbsp;fbi интерфейсом, для&amp;nbsp;этого достаточно добавить в&amp;nbsp;configd.layouts  (/usr/share/alterator/layouts/configd.layout) следующие строки:&lt;br />
(telegraph&lt;br />
 ;;(std-in)&lt;br />
 (server-socket &amp;laquo;/var/run/configd/.sock&amp;raquo; &amp;#8220;root&amp;#8221; &amp;#8220;_configd&amp;#8221;)&lt;br />
 (logfile &amp;laquo;/var/log/fbi1.log&amp;raquo;)&lt;br />
 (menu &amp;#8220;menu.html&amp;#8221;)&lt;br />
 (logfile &amp;laquo;/var/log/fbi2.log&amp;raquo;)&lt;br />
 (configd)&lt;br />
 (logfile &amp;laquo;/var/log/fbi3.log&amp;raquo;)&lt;br />
 (ensign))&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 17:16:03</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+17%3A16%3A03</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+17%3A16%3A03">2008-03-17 17:16:03&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-18+11%3A20%3A02">2008-03-18 11:20:02&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;em>Ещё: /usr/bin/alterator-standalone водится в&amp;nbsp;пакете alterator-standalone-usermode, /usr/sbin/alterator-standalone &amp;mdash; в&amp;nbsp;alterator-standalone&lt;/em>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:34:40</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A34%3A40</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A34%3A40">2008-03-17 16:34:40&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+17%3A16%3A03">2008-03-17 17:16:03&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h5528-1">&lt;/a>&lt;h3>Просмотр сообщений на&amp;nbsp;шине в&amp;nbsp;configd &lt;/h3>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h5528-1">&lt;/a>&lt;h3>Configd debug&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:34:04</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A34%3A04</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A34%3A04">2008-03-17 16:34:04&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A34%3A40">2008-03-17 16:34:40&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->&lt;fieldset>&lt;legend>&lt;strong> Оглавление документа   &lt;/strong>&lt;/legend>&lt;div class="toc2">&lt;a href="#h5528-2">Распространённые ошибки при&amp;nbsp;работе с&amp;nbsp;внешними бакендами.&lt;/a>&lt;/div>&lt;div class="toc2">&lt;a href="#h5528-3">Вставка отладочных сообщений&lt;/a>&lt;/div>&lt;div class="toc2">&lt;a href="#h5528-4">Интерпретация некоторых загадочных сообщений&lt;/a>&lt;/div>&lt;/fieldset>&lt;!--/notypo-->&lt;a name="h5528-1">&lt;/a>&lt;h3>Configd debug&lt;/h3>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h5528-1">&lt;/a>&lt;h2>Configd debug&lt;/h2>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:26:21</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A26%3A21</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A26%3A21">2008-03-17 16:26:21&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A34%3A04">2008-03-17 16:34:04&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h5528-1">&lt;/a>&lt;h2>Configd debug&lt;/h2>
Очень полезным бывает взглянуть на&amp;nbsp;то что&amp;nbsp;доходит и&amp;nbsp;исходит от/из configd при&amp;nbsp;работе с&amp;nbsp;fbi интерфейсом, для&amp;nbsp;этого достаточно добавить в&amp;nbsp;configd.layouts  (/usr/share/alterator/layouts/configd.layout) следующие строки:&lt;br />
(telegraph&lt;br />
 ;;(std-in)&lt;br />
 (server-socket &amp;laquo;/var/run/configd/.sock&amp;raquo; &amp;#8220;root&amp;#8221; &amp;#8220;_configd&amp;#8221;)&lt;br />
 (logfile &amp;laquo;/var/log/fbi1.log&amp;raquo;)&lt;br />
 (menu &amp;#8220;menu.html&amp;#8221;)&lt;br />
 (logfile &amp;laquo;/var/log/fbi2.log&amp;raquo;)&lt;br />
 (configd)&lt;br />
 (logfile &amp;laquo;/var/log/fbi3.log&amp;raquo;)&lt;br />
 (ensign))&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:19:21</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A19%3A21</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A19%3A21">2008-03-17 16:19:21&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A26%3A21">2008-03-17 16:26:21&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Во&amp;nbsp;третьем  случае (&lt;em>alterator -l -c configd.layout&lt;/em>) демон configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;br />
1. &lt;strong>Паразитный вывод от&amp;nbsp;утилит&lt;/strong> &amp;ndash; некоторые утилиты могут неожиданно для&amp;nbsp;автора бакенда произвести печать чего-нибудь на&amp;nbsp;stdout. В&amp;nbsp;результате альтератор воспримет это&amp;nbsp;как ответ. В&amp;nbsp;результате может быть выдано сообщение об&amp;nbsp;неподдерживаемой команде или, что&amp;nbsp;ещё хуже, alterator просто зависнет. Последнее может происходить в&amp;nbsp;случае, когда утилита выдала на&amp;nbsp;stdout кавычку, двойную кавычку или&amp;nbsp;скобку, и&amp;nbsp;alterator начинает ожидать завершения строки.&lt;br />
echo &amp;laquo;имя_вашего_модуля= $(date +%H/%M/%S): action=$in_action and&amp;nbsp;objects=$in__objects&amp;raquo; &amp;gt;&amp;gt; /tmp/alterator-debug.txt 2&amp;gt;&amp;1&lt;br />
&lt;div class="indent">Теперь, если заглянуть в&amp;nbsp;файл &lt;strong>/tmp/alterator-debug.txt&lt;/strong> то&amp;nbsp;можно видеть, какой последним был&amp;nbsp;запрос, допустим это&amp;nbsp;было&lt;/div>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Во&amp;nbsp;втором случае демон configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;br />
1. &lt;strong>Паразитный вывод от&amp;nbsp;утилит&lt;/strong> &amp;ndash; некоторые утилиты могут неожиданно для&amp;nbsp;автора бакенда произвести печать чего-нибудь на&amp;nbsp;stdout. В&amp;nbsp;результате альтератор воспримет это&amp;nbsp;как ответ. В&amp;nbsp;результате может быть выдано сообщение об&amp;nbsp;неподдерживаемой команде или, что&amp;nbsp;ещё хуже, alterator просто зависнет. Последнее может происходить в&amp;nbsp;случае, когда утилита выдала на&amp;nbsp;stdout кавычку, и&amp;nbsp;alterator начинает ожидать завершения строки.&lt;br />
echo &amp;laquo;имя_вашего_модуля= $(date +%H/%M/%S): action=$in_action and&amp;nbsp;objects=$in__objects&amp;raquo; &amp;gt;&amp;gt; /tmp/output.txt 2&amp;gt;&amp;1&lt;br />
&lt;div class="indent">Теперь, если заглянуть в&amp;nbsp;файл &lt;strong>/tmp/output.txt&lt;/strong> то&amp;nbsp;можно видеть, какой последним был&amp;nbsp;запрос, допустим это&amp;nbsp;было&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:13:53</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A13%3A53</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A13%3A53">2008-03-17 16:13:53&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A19%3A21">2008-03-17 16:19:21&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">6. &lt;strong>Несоответствие бакенда правилам workflow&lt;/strong> &amp;ndash; в&amp;nbsp;HTML интерфейсе автоматические workflow (такие как&amp;nbsp;form и&amp;nbsp;card-index) требуют определённого подхода к&amp;nbsp;размещению параметров в&amp;nbsp;&amp;laquo;дереве&amp;raquo; бакенда. В&amp;nbsp;GUI вся&amp;nbsp;динамика пока пишется вручную, поэтому там&amp;nbsp;это не&amp;nbsp;так критично.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">6. &lt;strong>Несоответствие бакенда правилам workflow&lt;/strong> &amp;ndash; в&amp;nbsp;HTML интерфейсе автоматические workflow (таки как&amp;nbsp;form и&amp;nbsp;card-index) требуют определённого подхода к&amp;nbsp;размещению параметров в&amp;nbsp;&amp;laquo;дереве&amp;raquo; бакенда. В&amp;nbsp;GUI вся&amp;nbsp;динамика пока пишется вручную, поэтому там&amp;nbsp;это не&amp;nbsp;так критично.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-17 16:03:47</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug/show?time=2008-03-17+16%3A03%3A47</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;debug&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A03%3A47">2008-03-17 16:03:47&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/debug?time=2008-03-17+16%3A13%3A53">2008-03-17 16:13:53&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">1. &lt;strong>Паразитный вывод от&amp;nbsp;утилит&lt;/strong> &amp;ndash; некоторые утилиты могут неожиданно для&amp;nbsp;автора бакенда произвести печать чего-нибудь на&amp;nbsp;stdout. В&amp;nbsp;результате альтератор воспримет это&amp;nbsp;как ответ. В&amp;nbsp;результате может быть выдано сообщение об&amp;nbsp;неподдерживаемой команде или, что&amp;nbsp;ещё хуже, alterator просто зависнет. Последнее может происходить в&amp;nbsp;случае, когда утилита выдала на&amp;nbsp;stdout кавычку, и&amp;nbsp;alterator начинает ожидать завершения строки.&lt;br />
2. &lt;strong>Отсутствие ответа&lt;/strong> &amp;ndash; можно ошибиться и&amp;nbsp;какая-нибудь из&amp;nbsp;утилит (например grep), будет висеть и&amp;nbsp;в месте с&amp;nbsp;ней будет висеть и&amp;nbsp;весь alterator.&lt;br />
3. &lt;strong>Два ответа вместо одного&lt;/strong> &amp;ndash; alterator не&amp;nbsp;сбрасывает буфер чтения перед началом чтения очередного ответа от&amp;nbsp;бакенда, поэтому если бакенд ответил два&amp;nbsp;раза, ядро и&amp;nbsp;бакенд начинают работать в&amp;nbsp;&amp;laquo;противофазе&amp;raquo; выдавая неожиданные ответы в&amp;nbsp;неожиданных местах. Внешне всё выглядит как&amp;nbsp;будто модуль то&amp;nbsp;работает, а&amp;nbsp;то не&amp;nbsp;работает.&lt;br />
4. &lt;strong>Неверный формат вывода списка&lt;/strong> &amp;ndash; давным давно alterator стал использовать для&amp;nbsp;вывода списков странную систему, в&amp;nbsp;которой в&amp;nbsp;отличие от&amp;nbsp;остальных случаев первым идёт строка с&amp;nbsp;именем. Пользователи не&amp;nbsp;читают документацию, поэтому часто вместо '(&amp;laquo;a&amp;raquo; param &amp;#8220;pam-pam&amp;#8221;) выводят '(name &amp;#8220;a&amp;#8221; param &amp;#8220;pam-pam&amp;#8221;) ... в&amp;nbsp;результате бакенд не&amp;nbsp;работает.&lt;br />
6. &lt;strong>Несоответствие бакенда правилам workflow&lt;/strong> &amp;ndash; в&amp;nbsp;HTML интерфейсе автоматические workflow (таки как&amp;nbsp;form и&amp;nbsp;card-index) требуют определённого подхода к&amp;nbsp;размещению параметров в&amp;nbsp;&amp;laquo;дереве&amp;raquo; бакенда. В&amp;nbsp;GUI вся&amp;nbsp;динамика пока пишется вручную, поэтому там&amp;nbsp;это не&amp;nbsp;так критично.&lt;a name="h5528-1">&lt;/a>&lt;h3>Вставка отладочных сообщений&lt;/h3>
Во&amp;nbsp;внешних бакендах остаётся свободным stderr, поэтому можно выводить отладочные сообщения именно туда. В&amp;nbsp;нативных бакендах и&amp;nbsp;во всём остальном alterator свободны и&amp;nbsp;stdout и&amp;nbsp;stderr. Для&amp;nbsp;вывода в&amp;nbsp;коде scheme рекомендуется использовать функцию format. Например:&lt;br />
(format #t &amp;laquo;debug-message:obj1=S,obj2=~S~%&amp;quot; obj1 obj2) ; вывод на&amp;nbsp;stdout&lt;br />
(format (current-error-port) &amp;laquo;debug-message%&amp;quot;) ; вывод в&amp;nbsp;stderr&lt;br />
Очень полезно отладить бакенд сначала в&amp;nbsp;интерфейсе командной строки, а&amp;nbsp;потом уже&amp;nbsp;проверять как&amp;nbsp;он&amp;nbsp;работает в&amp;nbsp;других более сложных интерфейсах &amp;ndash; так&amp;nbsp;будет проще найти виноватого.&lt;a name="h5528-2">&lt;/a>&lt;h3>Интерпретация некоторых загадочных сообщений&lt;/h3>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">1. &lt;strong>&amp;laquo;Паразитный вывод от&amp;nbsp;утилит&amp;raquo;&lt;/strong> &amp;ndash; некоторые утилиты могут неожиданно для&amp;nbsp;автора бакенда произвести печать чего-нибудь на&amp;nbsp;stdout. В&amp;nbsp;результате альтератор воспримет это&amp;nbsp;как ответ. В&amp;nbsp;результате может быть выдано сообщение об&amp;nbsp;неподдерживаемой команде или, что&amp;nbsp;ещё хуже, alterator просто зависнет. Последнее может происходить в&amp;nbsp;случае, когда утилита выдала на&amp;nbsp;stdout кавычку, и&amp;nbsp;alterator начинает ожидать завершения строки.&lt;br />
2. &lt;strong>&amp;laquo;Отсутствие ответа&amp;raquo;&lt;/strong> &amp;ndash; можно ошибиться и&amp;nbsp;какая-нибудь из&amp;nbsp;утилит (например grep), будет висеть и&amp;nbsp;в месте с&amp;nbsp;ней будет висеть и&amp;nbsp;весь alterator.&lt;br />
3. &lt;strong>&amp;laquo;Два ответа вместо одного&amp;raquo;&lt;/strong> &amp;ndash; alterator не&amp;nbsp;сбрасывает буфер чтения перед началом чтения очередного ответа от&amp;nbsp;бакенда, поэтому если бакенд ответил два&amp;nbsp;раза, ядро и&amp;nbsp;бакенд начинают работать в&amp;nbsp;&amp;laquo;противофазе&amp;raquo; выдавая неожиданные ответы в&amp;nbsp;неожиданных местах. Внешне всё выглядит как&amp;nbsp;будто модуль то&amp;nbsp;работает, а&amp;nbsp;то не&amp;nbsp;работает.&lt;br />
4. &lt;strong>&amp;laquo;Неверный формат вывода списка&amp;raquo;&lt;/strong> &amp;ndash; давным давно alterator стал использовать для&amp;nbsp;вывода списков странную систему, в&amp;nbsp;которой в&amp;nbsp;отличие от&amp;nbsp;остальных случаев первым идёт строка с&amp;nbsp;именем. Пользователи не&amp;nbsp;читают документацию, поэтому часто вместо '(&amp;laquo;a&amp;raquo; param &amp;#8220;pam-pam&amp;#8221;) выводят '(name &amp;#8220;a&amp;#8221; param &amp;#8220;pam-pam&amp;#8221;) ... в&amp;nbsp;результате бакенд не&amp;nbsp;работает.&lt;br />
&lt;hr noshade="noshade" size="1" />
Отлаживать модули в&amp;nbsp;alterator пока не&amp;nbsp;так просто и&amp;nbsp;удобно как&amp;nbsp;хотелось бы.&lt;br />
Следующие способы возможно облегчал жизнь:&lt;br />
&lt;ul>&lt;li>  Запуск guile в&amp;nbsp;отладочном режиме (в случае ошибки выдаётся очень backtrace,  благодаря которому можно понять где&amp;nbsp;возникла проблема):&lt;/li>&lt;/ul>
guile --debug -s /usr/bin/alterator -c standalone.layout &amp;lt;профиль&amp;gt;&lt;br />
&lt;ul>&lt;li>   Вставка отладочных сообщений. Во&amp;nbsp;всех компонентах alterator можно ставить отладочные сообщения с&amp;nbsp;выводом в&amp;nbsp;stderr,  вывод в&amp;nbsp;stdout можно делать также везде кроме бакендов. Для&amp;nbsp;выдачи сообщений об&amp;nbsp;ошибке можно пользоваться функциями write,display или&amp;nbsp;format (рекомендуемый вариант).&lt;/li>&lt;/ul>
(format (current-error-port) &amp;laquo;value=S~%&amp;quot; value) ; вывод на&amp;nbsp;stderr&lt;br />
или&lt;br />
(format #t &amp;laquo;value=S~%&amp;quot; value) ; вывод на&amp;nbsp;stdout&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">*   Если подземные стуки раздаются в районе браузера интерфейса, то можно заменить в layout транспорт pipe-in, на std-in, и дав на вход команду &amp;quot;(auth-request)&amp;quot;, посмотреть на вывод. Ниже пример layout для использования транспорт std-in.&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">....&lt;br />
(use-modules (alterator transport std-channel))&lt;br />
&lt;br />
(telegraph&lt;/div>
;  (pipe-in &amp;laquo;/usr/bin/qtbrowser&amp;raquo;)&lt;br />
&lt;div class="indent">(std-in)&lt;br />
(lookout)&lt;br />
(ensign))&lt;/div>
...&lt;br />
&lt;div class="indent">&lt;!--notypo-->&lt;textarea class="code" rows="4" readonly="readonly">*  Если есть подозрение, что по шине ходят какие-то не такие команды, то можно вставить между интересующими модулями компонент по имени (bridge-book-recorder &amp;quot;name.log&amp;quot;) и потом изучать содержимое log-файла  
  *  Если есть подозрение, что бакенд не отрабатывает как следует, то помимо простых отладочных сообщений, возможны следующие варианты:
    *  Если проблема в протоколе обмена, то можно попробовать &amp;quot;пообщаться&amp;quot; с бакендом вручную прямо в shell (протокол описан в соотв. разделе)&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">$ backend3/users &lt;/div>&lt;/div>&lt;/div>&lt;/div>
_message:begin&lt;br />
_objects:root &lt;br />
action:read&lt;br />
_message:end&lt;br />
(&lt;br />
gecos &amp;#8220;Root&amp;#8221; home &amp;laquo;/root&amp;#8221; shell &amp;laquo;/bin/bash&amp;#8221;&lt;br />
)&lt;br />
&lt;ul>&lt;li>&lt;ul>&lt;li>  Если проблема в&amp;nbsp;логике,   то&amp;nbsp;можно пообщаться с&amp;nbsp;бакендом, используя cmdline интерфейс&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>
 %%&lt;br />
$ alterator -l -c cmdline.layout /users/root action read&lt;br />
gecos &amp;#8220;Root&amp;#8221; home &amp;laquo;/root&amp;#8221; shell &amp;laquo;/bin/bash&amp;#8221;&lt;br />
&lt;div class="indent">&lt;/div>&lt;a name="h5528-1">&lt;/a>&lt;h2>Сообщения об&amp;nbsp;ошибке&lt;/h2>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
