Spec-Zone.ru › Perl 5.28

perlbug

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНОПСИС
  • ОПИСАНИЕ
  • ПАРАМЕТРЫ
  • АВТОРЫ
  • СМОТРИТЕ ТАКЖЕ
  • ОШИБКИ

ИМЯ

perlbug - как отправить отчеты об ошибках в Perl

СИНОПСИС

perlbug

perlbug [ -v ] [ -a адрес ] [ -s тема ] [ -b тело | -f входной файл ] [ -F выходной файл ] [ -r адрес возврата ] [ -e редактор ] [ -c адрес администратора | -C ] [ -S ] [ -t ] [ -d ] [ -A ] [ -h ] [ -T ]

perlbug [ -v ] [ -r адрес возврата ] [ -A ] [ -ok | -okay | -nok | -nokay ]

perlthanks

ОПИСАНИЕ

Эта программа предназначена для помощи в создании и отправке отчетов об ошибках (и благодарственных писем) о perl5 и модулях, поставляемых вместе с ним.

В большинстве случаев вы можете просто запустить его интерактивно из командной строки без каких-либо специальных аргументов и следовать подсказкам.

Если вы обнаружили ошибку с нестандартным портом (который не был частью стандартного распределения), бинарным распределением или модулем, не относящимся к ядру (таким как Tk, DBI и т. д.), обратитесь к документации, предоставленной с этим распределением, чтобы определить правильное место для сообщения об ошибках.

Если вы не можете отправить свой отчет с помощью perlbug (скорее всего, потому что ваша система не имеет возможности отправки почты, распознаваемой perlbug), вы можете использовать этот инструмент для составления отчета и сохранения его в файл, который затем можно отправить на адрес perlbug@perl.org с помощью вашего обычного почтового клиента.

В крайних случаях perlbug может работать недостаточно хорошо на вашей системе, чтобы помочь вам в составлении отчета об ошибке. В этих случаях вы можете использовать perlbug -d, чтобы получить информацию о конфигурации системы для включения в вручную составленный отчет об ошибке, отправляемый на адрес perlbug@perl.org.

При сообщении об ошибке, пожалуйста, пройдитесь по этому контрольному списку:

Какая версия Perl у вас установлена?

Введите perl -v в командной строке, чтобы узнать.

Используете ли вы последнюю выпущенную версию Perl?

Посмотрите на http://www.perl.org/, чтобы узнать. Если вы не используете последнюю выпущенную версию, пожалуйста, попробуйте воспроизвести ошибку на последней стабильной версии.

Обратите внимание, что сообщения об ошибках в старых версиях Perl, особенно те, которые указывают, что вы не тестировали текущую стабильную версию Perl, скорее всего, получат меньше внимания от добровольцев, которые разрабатывают и поддерживают Perl, чем сообщения об ошибках в текущей версии.

Этот инструмент не подходит для сообщения об ошибках в версиях Perl, предшествующих 5.0.

Вы уверены, что у вас ошибка?

Значительное количество сообщений об ошибках, которые мы получаем, оказываются описанными функциями в Perl. Убедитесь, что проблема, с которой вы столкнулись, не является намеренной, взглянув на документацию, поставляемую с дистрибутивом Perl.

Учитывая огромный объем документации Perl, это не тривиальная задача, но если вы можете указать на документацию, которая предполагает, что наблюдаемое вами поведение является неправильным, ваша проблема, скорее всего, получит больше внимания. Вы можете начать с perldoc perltrap для получения ссылок на распространенные ловушки, с которыми сталкиваются новые (и опытные) программисты Perl.

Если вы не уверены в значении полученного вами сообщения об ошибке, обратитесь к perldoc perldiag для получения объяснений. Если сообщения нет в perldiag, оно, вероятно, не генерируется Perl. Вы можете попробовать обратиться к документации вашей операционной системы.

Если вы работаете на платформе, отличной от UNIX, обратитесь к perldoc perlport, так как некоторые функции могут быть не реализованы или работать иначе.

Вы можете попытаться выяснить, что происходит неправильно, используя отладчик Perl. Для получения информации о том, как использовать отладчик, обратитесь к perldoc perldebug.

У вас есть надлежащий тестовый случай?

Чем легче воспроизвести вашу ошибку, тем больше вероятность того, что она будет исправлена — если никто не может воспроизвести вашу проблему, она, вероятно, не будет решена.

Хороший тестовый случай имеет большинство из этих атрибутов: короткий, простой код; мало зависимостей от внешних команд, модулей или библиотек; отсутствие платформозависимого кода (если это ошибка, специфичная для платформы); ясное и простое описание.

Хороший тестовый случай практически всегда является хорошим кандидатом для включения в набор тестов Perl. Если у вас есть время, подумайте о том, как написать свой тестовый случай так, чтобы его можно было легко включить в стандартный набор тестов.

Вы включили всю необходимую информацию?

Убедитесь, что вы включили точные сообщения об ошибках, если таковые имеются. "Perl выдал ошибку" не является точным сообщением об ошибке.

Если вы получили дамп ядра (или эквивалент), вы можете использовать отладчик (dbx, gdb и т. д.) для создания стека вызовов, который следует включить в отчет об ошибке.

ПРИМЕЧАНИЕ: если ваш Perl был скомпилирован с отладочной информацией (часто -g), стек вызовов, скорее всего, будет несколько сложным для использования, поскольку он, скорее всего, будет содержать только имена функций, а не их аргументы. Если возможно, перекомпилируйте Perl с отладочной информацией, воспроизведите сбой и стек вызовов.

Вы можете описать ошибку простым языком?

Чем легче понять воспроизводимую ошибку, тем больше вероятность того, что она будет исправлена. Любая информация, которую вы можете предоставить о проблеме, будет очень полезна. Другими словами, попробуйте проанализировать проблему (насколько это возможно) и сообщить о ваших выводах.

Вы можете исправить ошибку сами?

Если да, это отличная новость; сообщения об ошибках с исправлениями, скорее всего, получат значительно больше внимания и интереса, чем те, что без них. Пожалуйста, приложите ваше исправление к сообщению, используя параметр -p. При отправке исправления создайте его с помощью git format-patch, если это возможно, хотя унифицированная разница, созданная с помощью diff -pu, будет почти так же хороша.

Ваше исправление может быть возвращено с запросами на изменения или запросами на более подробные объяснения вашего исправления.

Вот несколько советов для создания исправления высокого качества:

Убедитесь, что исправление не обращено вспять (первый аргумент diff обычно является исходным файлом, второй — изменённым файлом). Убедитесь, что вы протестировали свое исправление, применив его с помощью git am или программы patch перед отправкой. Постарайтесь следовать тому же стилю, что и код, который вы пытаетесь исправить. Убедитесь, что ваше исправление действительно работает (make test, если исправленный элемент покрыт набором тестов Perl).

Вы можете использовать perlbug для отправки отчета?

perlbug, среди прочего, гарантирует, что ваш отчет включает важную информацию о вашей версии perl. Если perlbug не сможет отправить ваш отчет после того, как вы его напечатаете, вам, возможно, придётся составить сообщение самостоятельно, добавить вывод, полученный от perlbug -d, и отправить его по электронной почте на адрес perlbug@perl.org. Если по какой-то причине вы не можете запустить perlbug на своей системе, обязательно включите весь вывод, полученный при запуске perl -V (обратите внимание на заглавную букву V).

Независимо от того, используете ли вы perlbug или отправляете электронное письмо вручную, сделайте тему информативной. "ошибка" не информативно. Также не информативно "perl зависает" или "ПОМОГИТЕ!!!". Это не помогает. Хорошо подойдет компактное описание проблемы.

Вы можете использовать perlbug для отправки благодарственного письма?

Да, вы можете сделать это, используя параметр -T или вызвав программу как perlthanks. Благодарственные письма — это хорошо. Это поднимает настроение.

После выполнения вашей части, будьте готовы к ожиданию, к тому, что вам скажут, что ошибка в вашем коде, или, возможно, к тому, что вы вообще не получите ответа. Добровольцы, поддерживающие Perl, — занятые люди, поэтому если ваша проблема — очевидная ошибка в вашем собственном коде, если её сложно понять или если это дубликат уже существующего сообщения, вы можете не получить личного ответа.

Если для вас важно, чтобы ваша ошибка была исправлена, следите за списком рассылки perl5-porters@perl.org (списки рассылки модерируются, ваше сообщение может появиться через некоторое время) и логами коммитов в версиях Perl для разработки, и поддерживайте мотивацию разработчиков добрыми словами или предложениями освежающих напитков. (Пожалуйста, будьте добры к разработчикам. Запугивание или оскорбления, скорее всего, принесут обратный результат.)

Вы можете обновить тикет вашей ошибки на http://rt.perl.org, если выпущена новая версия Perl, и ошибка всё ещё присутствует.

ПАРАМЕТРЫ

-a

Адрес для отправки отчета. По умолчанию perlbug@perl.org.

-A

Не отправлять подтверждение о получении сообщения об ошибке на адрес ответа. Как правило, использовать этот параметр следует только в том случае, если вы являетесь разработчиком Perl, активно отслеживающим сообщения разработчиков Perl, чтобы ваше сообщение пришло.

-b

Тело отчета. Если оно не указано в командной строке или в файле с помощью параметра -f, у вас будет возможность отредактировать сообщение.

-C

Не отправлять копию администратору.

-c

Адрес для отправки копии отчета. По умолчанию используется адрес локального администратора Perl (записанный при сборке Perl).

-d

Режим данных (по умолчанию, если вывод перенаправлен или направлен в поток). Это выводит данные конфигурации, не отправляя ничего по почте. Вы можете использовать его с параметром -v, чтобы получить более полные данные.

-e

Редактор для использования.

-f

Файл, содержащий тело отчета. Используйте его для быстрого отправления подготовленного сообщения.

-F

Файл для вывода результатов вместо отправки по электронной почте. Особенно полезно при запуске perlbug на машине без прямого подключения к интернету.

-h

Выводит краткое описание параметров.

-ok

Сообщить разработчикам Perl об успешной сборке на этой системе. Принудительно включает -S и -C. Принудительно устанавливает значения для -s и -b. Запрашивает адрес возврата только в том случае, если его невозможно определить (для использования с make). Учитывает адрес возврата, указанный с помощью -r. Вы можете использовать его с -v, чтобы получить более полные данные. Отправляет отчет только если система существует меньше 60 дней.

-okay

Как -ok, но также работает на более старых системах.

-nok

Отправить отчет о неудачной сборке на этой системе. Принудительно включает -C. Принудительно устанавливает значение для -s, а затем требует от вас редактирования отчета и объяснения того, что пошло не так. В качестве альтернативы, подготовленный отчет может быть предоставлен с помощью -f. Запрашивает адрес возврата только в том случае, если его невозможно определить (для использования с make). Учитывает адрес возврата, указанный с помощью -r. Вы можете использовать его с -v, чтобы получить более полные данные. Отправляет отчет только если система существует меньше 60 дней.

-nokay

Как -nok, но также работает на более старых системах.

-p

Имена одного или нескольких файлов с патчами или других текстовых вложений, которые должны быть включены в отчет. Несколько файлов должны быть разделены запятыми.

-r

Ваш адрес возврата. Программа попросит вас подтвердить значение по умолчанию, если вы не используете этот параметр.

-S

Отправить без запроса подтверждения.

-s

Тема для включения в сообщение. Вас попросят ввести её, если вы не укажете её в командной строке.

-t

Тестовый режим. Адрес назначения по умолчанию perlbug-test@perl.org. Также позволяет запускать perlbug из канала или файла для целей тестирования.

-T

Отправить благодарственное письмо вместо отчета об ошибке.

-v

Включить подробные данные конфигурации в отчете.

АВТОРЫ

Kenneth Albanowski (<kjahds@kjahds.com>), позднее доработан Gurusamy Sarathy (<gsar@activestate.com>), Tom Christiansen (<tchrist@perl.com>), Nathan Torkington (<gnat@frii.com>), Charles F. Randall (<cfr@pobox.com>), Mike Guy (<mjtg@cam.ac.uk>), Dominic Dunlop (<domo@computer.org>), Hugo van der Sanden (<hv@crypt.org>), Jarkko Hietaniemi (<jhi@iki.fi>), Chris Nandor (<pudge@pobox.com>), Jon Orwant (<orwant@media.mit.edu>, Richard Foley (<richard.foley@rfi.net>), Jesse Vincent (<jesse@bestpractical.com>) и Craig A. Berry (<craigberry@mac.com>).

СМОТРИТЕ ТАКЖЕ

perl(1), perldebug(1), perldiag(1), perlport(1), perltrap(1), diff(1), patch(1), dbx(1), gdb(1)

ОШИБКИ

Неизвестны (представьте, что использовалось для их отчётности?)

© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.28.3/perlbug

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API