Роб Кёртен - Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
# cd /usr/nto/x86
# ls -l bin/telnet dll/devn-ne2000.so dll/npi-ttcpip.so
-rwxr-xr-x 1 root root 71588 May 19 11:45 bin/telnet*
-rwxr-xr-x 1 root root 680928 May 19 11:05 dll/devn-no2000.so*
-rwxr-xr-x 1 root root 83765 Jun 02 06:39 dll/npi-ttcpip.so*
# cksum bin/telnet dll/devn-ne2000.so dll/npi-ttcpip.so
1574162245 71588 bin/telnet
3564123752 680928 dll/devn-ne2000.so
2582029317 83765 dll/npi-ttcpip.so
Это даст сотрудникам техотдела примерную картину дат, размеров и контрольных сумм ряда объектов, которые, возможно, связаны с проблемой. Отметьте строку «cd /usr/nto/x86» — она говорит, что я использую средства разработки в версии для x86.
Если у вас есть подозрение, что проблема может быть связана с особенностями платформы, вам, безусловно, следует указать ее название, торговую марку (brand) и соответствующие применяемые в ней чипсеты.
Также служба технической поддержки, как правило, требует описания конфигурации вашей системы — особенно когда есть подозрение, что проблема связана с недостатком памяти, лицензированием, и т.п. Вы должны попытаться дать полную информацию относительно объема установленной памяти, количестве выполняющихся процессов, приблизительной степени загрузки, и т.д:
Чем более подробную информацию вы предоставите, тем быстрее вам смогут помочь.
Если у вас бета...Если вы используете бета-версию программного обеспечения (то есть вы подписаны на бета-программу QSSL), вся вышеперечисленная информация критична, потому ваши версии программного обеспечения, скорее всего, будут отличаться от официально выпущенных. Однако, имейте в виду, что в общем случае поддержка бета-версий по телефону в QSSL не предусмотрена, так что здесь единственный способ получить информацию — написать в телеконференцию или, если разработчик запрашивает прямой контакт с вами, поговорить с разработчиком напрямую.
В любом случае одним из лучших решений являются телеконференции, потому что они дают возможность и другим участникам видеть, какие есть проблемы, и как с ними быть (то есть если найдена ошибка, то какие есть обходные пути). Как бы там ни было, вышеупомянутая информация критична для определения того, какие именно программные продукты из бета-релиза вы применяете.
Также, если вы обмениваетесь информацией с разработчиком, то имейте в виду, что у него, как правило, есть еще тысяча дел, и он вряд ли сможет ответить на ваш запрос сразу. Дружеский «ping» спустя несколько дней молчания делу не повредит, а вот повторное требование ответа через 15 минут после запроса определенно не прибавит вам новых друзей.
Что часто проявляется при работе с бета-версиями, так это то, что люди забывают ставить обновления. Механизм же бета-тестирования работает так, что пропуск обновления запросто может заставить вашу систему вести себя странновато. Некоторые новые драйверы или администраторы ресурсов могут вести себя со своими клиентами совершенно иначе, чем в предыдущих версиях.
В этом случае вы должны быть уверены (потому что вас обязательно спросят!), что все обновления установлены, и в нужном порядке.
Воспроизведите проблемуОдин из первых вопросов персонала технической поддержки обычно звучит так: «А оно происходит исключительно с бухты-барахты, или вы можете это повторить намеренно?»
Это не праздное любопытство. Если проблема проявляется редко, она столь же серьезна, как и проблема, которая проявляется регулярно. Главное — понять, с какой стороны подойти.
Обычно в случае редко проявляющейся проблемы персонал технической поддержки рекомендует сконфигурировать операционную систему и другие компоненты так, чтобы когда проблема проявится вновь, остался какой-нибудь отчет о состоянии системы или был вызван отладчик — чтобы можно было потом разобраться, что произошло.
Если проблемная ситуация легко воспроизводится, то технический персонал захочет воспроизвести ее на месте, чтобы продемонстрировать разработчику на «живой» системе. «Смотри-ка! Все умирает, стоит мне сде…»
Сузьте круг поискаДаже если проблема воспроизводима, персонал технической поддержки, скорее всего, не будет в восторге от перспективы переворошить 6000 строк вашей Си-кода в поисках затаившейся в его недрах ошибки.
В большинстве случаев, которые мне доводилось видеть, местоположение ошибки можно было сузить примерно до 20–30 строк максимум. Большие файлы могут быть действительно полезны для анализа в тех случаях, когда вы подозреваете, что ошибка связана с размерами объектов, а не с библиотеками или ядром. Например, у некоторых утилит может быть задан размер массива по умолчанию, и попытка увеличить его размер ведет к проблеме. В этом случае персонал технической поддержки может запросить у вас tar-архив, в котором содержится все. К счастью, создавать tar-архивы несложно. Например, если каталог вашего проекта называется /src/projects/xyzzy, и техперсонал хочет посмотреть все, что там находится, вы можете сделать следующее:
# cd /src/projects
# tar cvf xyzzy.tar xyzzy
Это «высосет» все содержимое каталога xyzzy (включая все подкаталоги!) в файл с именем xyzzy.tar. Если результирующий tar-файл получится большим, вы сможете сэкономить время на его загрузку и место на диске, если сожмете его с помощью утилиты gzip:
# gzip -9v xyzzy.tar
xyzzy.tar: 60.2% — replaced with xyzzy.tar.gz
Вы сможете затем переслать полученный файл xyzzy.tar.gz персоналу техподдержки (лучше, конечно, по FTP, чем электронным письмом :-).
Как сообщить об ошибкеЕсли вы убеждены в том, что нашли ошибку (например, утилита «падает» по SIGSEGV), вы можете не выставлять ее на всеобщее обсуждение в телеконференцию, а напрямую сообщить об ошибке в QSSL при помощи команды bug на QUICS. (Этот способ также устарел. Теперь для сообщения об ошибках используется специальная веб-форма на QDN — http://qdn.qnx.com/report/problem_report.html — прим. ред.)
Другие источники информации
Кроме QUICS, существует ряд других информационных ресурсов, куда можно обращаться за помощью, информацией или услугами. Ниже приведен далеко не полный список, но по крайней мере у вас будет с чего начать.
www.qnx.com
Веб-сайт компании QSSL, особенно его раздел техподдержки (qdn.qnx.com — прим. ред.), наполнен полезной информацией и файлами.
comp.os.qnx
Это обычная телеконференция USENET. Она была создана для пользователей QNX, чтобы они могли вместе обсуждать проблемы, особенности, решения, и т.п.
Персонал QSSL не всегда следит за этой конференцией (хотя некоторые там все-таки прячутся). Вообще это конференция для тех, у кого есть вопросы, но нет продуктов QNX. В эту конференцию периодически вывешивается сборник ЧаВо (Часто задаваемые Вопросы, или Frequently Asked Questions — FAQ — прим. ред.), из которого можно узнать много полезного о продуктах.
Если вам нужен гарантированный ответ, то лучшим выбором была и остается QUICS.
Каталог «третьих» фирм — продукты и консалтинг
Компания QSSL издает Каталог «третьих» фирм (Third Party Directory), в котором перечислены все сторонние компании и их продукты для QNX (например, многопортовые платы последовательного интерфейса, аппаратные средства стандарта X.25, программное обеспечение), а также представлен список организаций и лиц, оказывающих консалтинговые услуги при разработке проектов.
Данный каталог доступен от QSSL, для получения копии обращайтесь к своему торговому представителю.
QNXnewsКомпания QSSL издает ежеквартальный журнал, называемый QNXnews. Он содержит статьи о заказчиках компании QSSL, примеры применения ими QNX в своих продуктах и решениях, а также объявления от QSSL и «третьих» фирм о новых продуктах и услугах.
Подписка на этот журнал также доступна в QSSL. Обращайтесь к вашему торговому представителю для получения дополнительной информации
ОбучениеИ, наконец, некоторые компании предлагают курсы обучения по программным продуктам QNX — за подробностями обращайтесь в отдел обучения QSSL
Глоссарий
Цитата из веб-странички сайта Обсерватории по изучению нейтрино, расположенной в Садбери (Sudbury Neutrino Observatory) (см. http://www.sno.phy.gueensu.ca):
«Нейтрино — это мельчайшие, возможно невесомые, нейтральные элементарные частицы, которые взаимодействуют с веществом через слабые ядерные силы взаимодействия. Незначительность этих сил взаимодействия наделяет нейтрино свойством свободного прохождения через вещество — говорят, что материя является почти прозрачной для нейтрино. Солнце и все другие звезды в результате процессов синтеза и распада в пределах ядра генерируют мощные потоки нейтрино. Поскольку нейтрино взаимодействуют редко, они проникают через Солнце и Землю (и вас) беспрепятственно. Другими источниками нейтрино являются взрывающиеся звезды (сверхновые), реликтовые нейтрино (от рождения вселенной) и атомные электростанции (при работе которых много энергии топлива уносится потоком нейтрино). Например, Солнце генерирует более чем две сотни триллионов триллионов триллионов нейтрино каждую секунду, а взрыв сверхновой может выдать поток нейтрино в тысячи раз больше, чем наше Солнце, которое произведет его в течение всех 10 миллиардов лет своей жизни. Поток в миллиарды нейтрино каждую секунду пронизывает Ваше тело и всего только одна или две частицы из частиц с наибольшей энергией рассеиваются в Вас за всю Вашу жизнь.»