perlbug
СОДЕРЖАНИЕ
ИМЯ
perlbug - как подавать сообщения об ошибках в Perl
СИНОПСИС
perlbug
perlbug [ -v ] [ -a адрес ] [ -s тема ] [ -b тело | -f входной файл ] [ -F выходной файл ] [ -r адрес возврата ] [ -e редактор ] [ -c адрес администратора | -C ] [ -S ] [ -t ] [ -d ] [ -h ] [ -T ]
perlbug [ -v ] [ -r адрес возврата ] [ -ok | -okay | -nok | -nokay ]
perlthanks
ОПИСАНИЕ
Эта программа предназначена для помощи в создании отчетов об ошибках (и благодарственных записок) о perl5 и модулях, поставляемых с ним.
В большинстве случаев вы можете просто запустить её интерактивно из командной строки без каких-либо специальных аргументов и следовать подсказкам.
Если вы обнаружили ошибку с нестандартным портом (не являющимся частью стандартного дистрибутива), двоичным дистрибутивом или модулем, не относящимся к ядру (таким как Tk, DBI и т. д.), ознакомьтесь с документацией, поставляемой с этим дистрибутивом, чтобы определить правильное место для сообщения об ошибке.
Сообщения об ошибках следует отправлять в систему отслеживания проблем GitHub по адресу https://github.com/Perl/perl5/issues. Адрес perlbug@perl.org больше не автоматически открывает тикеты. Вы можете использовать этот инструмент для составления отчета и сохранения его в файле, который затем можно отправить в систему отслеживания проблем.
В крайних случаях perlbug может не работать достаточно хорошо на вашей системе, чтобы провести вас через составление отчета об ошибке. В таких случаях вы можете использовать perlbug -d или perl -V для получения информации о конфигурации системы, которую необходимо включить в отчет об ошибке.
При сообщении об ошибке, пожалуйста, пройдите по этому контрольному списку:
- Какая версия Perl у вас установлена?
-
Введите
perl -vв командной строке, чтобы узнать. - Используете ли вы последнюю релизную версию Perl?
-
Посмотрите на http://www.perl.org/, чтобы узнать. Если вы не используете последнюю выпущенную версию, попробуйте воспроизвести ошибку на последней стабильной версии.
Обратите внимание, что сообщения об ошибках в старых версиях Perl, особенно те, которые указывают, что вы также не протестировали текущую стабильную версию Perl, скорее всего, получат меньше внимания от волонтеров, которые разрабатывают и поддерживают Perl, чем сообщения об ошибках в текущей версии.
- Вы уверены, что это ошибка?
-
Значительное количество сообщений об ошибках, которые мы получаем, оказываются описанными функциями в Perl. Убедитесь, что проблема, с которой вы столкнулись, не является намеренной, ознакомившись с документацией, поставляемой с дистрибутивом Perl.
Учитывая огромный объем документации Perl, это нетривиальная задача, но если вы можете сослаться на документацию, которая предполагает, что наблюдаемое поведение является неправильным, ваша проблема, скорее всего, получит больше внимания. Вы можете начать с perldoc perltrap для указания на распространенные ловушки, в которые попадают новые (и опытные) программисты Perl.
Если вы не уверены в значении сообщения об ошибке, которое вы встретили, обратитесь к perldoc perldiag для получения объяснения. Если сообщение отсутствует в perldiag, скорее всего, оно не генерируется Perl. Вы можете попробовать обратиться к документации вашей операционной системы.
Если вы используете не платформу Unix, обратитесь к perldoc perlport, так как некоторые функции могут быть не реализованы или работать по-другому.
Вы можете попытаться выяснить, что происходит, используя отладчик Perl. Для получения информации о том, как использовать отладчик, см. perldoc perldebug.
- У вас есть подходящий тестовый случай?
-
Чем легче воспроизвести вашу ошибку, тем больше вероятность, что она будет исправлена - если никто не может воспроизвести вашу проблему, она, вероятно, не будет рассмотрена.
Хороший тестовый случай обладает большинством этих свойств: короткий, простой код; мало зависимостей от внешних команд, модулей или библиотек; отсутствие платформенно-зависимого кода (если это не ошибка, специфичная для платформы); ясное, простое описание.
Хороший тестовый случай почти всегда является хорошим кандидатом для включения в тестовый набор Perl. Если у вас есть время, подумайте о создании тестового случая, который можно легко включить в стандартный набор тестов.
- Вы включили всю необходимую информацию?
-
Убедитесь, что вы включили точное сообщение об ошибке, если оно есть. "Perl выдало ошибку" не является точным сообщением об ошибке.
Если у вас сгенерирован core dump (или эквивалент), вы можете использовать отладчик (dbx, gdb и т. д.) для создания трассировки стека, которую нужно включить в отчет об ошибке.
ПРИМЕЧАНИЕ: если ваш Perl был скомпилирован без отладочной информации (часто -g), трассировка стека, скорее всего, будет достаточно сложной для использования, потому что она, скорее всего, будет содержать только имена функций, а не их аргументы. Если возможно, перекомпилируйте ваш Perl с отладочной информацией, воспроизведите сбой и трассировку стека.
- Можно ли описать ошибку простым языком?
-
Чем легче понять воспроизводимую ошибку, тем больше вероятность, что она будет исправлена. Любое понимание проблемы очень поможет. Другими словами, постарайтесь проанализировать проблему (в той степени, в которой вы можете) и сообщить о своих выводах.
- Вы можете исправить ошибку самостоятельно?
-
Если да, это отличная новость; сообщения об ошибках с исправлениями, скорее всего, получат значительно больше внимания и интереса, чем те, без них. Пожалуйста, отправьте свое исправление через GitHub Pull Request, как описано в perldoc perlhack. Вы также можете отправить исправления по адресу perl5-porters@perl.org. При отправке исправления, создайте его с использованием
git format-patch, если это возможно, хотя унифицированная разница, созданная сdiff -pu, практически так же хороша.Ваше исправление может быть возвращено с запросами на изменения или запросами на более подробные пояснения вашего исправления.
Вот несколько советов по созданию качественных исправлений:
Убедитесь, что патч не обратный (первый аргумент в diff обычно исходный файл, второй - измененный). Убедитесь, что вы протестировали свой патч, применив его с помощью
git amили программыpatch, прежде чем отправлять его. Постарайтесь следовать тому же стилю, что и код, который вы пытаетесь исправить. Убедитесь, что ваш патч действительно работает (make test, если объект, который вы исправляете, охвачен тестовым набором Perl). -
Можно ли использовать
perlbugдля отправки благодарственной записки? -
Да, вы можете сделать это, используя параметр
-T, или вызвав программу какperlthanks. Благодарственные записки - это хорошо. Это поднимает настроение.
Пожалуйста, сделайте заголовок вашего отчета информативным. "Ошибка" - неинформативно. Также неинформативно "Perl зависает" или "ПОМОГИТЕ!!!". Это не помогает. Лаконичное описание проблемы вполне подойдет.
Сделав свою часть работы, будьте готовы подождать, вас могут сказать, что ошибка в вашем коде, или, возможно, не получить никакого ответа вообще. Волонтеры, которые поддерживают Perl, занятые люди, поэтому если ваша проблема - очевидная ошибка в вашем собственном коде, её трудно понять или это дубликат существующего отчета, вам могут не ответить лично.
Если для вас важно, чтобы ваша ошибка была исправлена, следите за системой отслеживания проблем (вы будете получать уведомления о проблемах, которые вы отправляете или комментируете) и журналами коммитов к развивающимся версиям Perl, и поддерживайте авторов с доброжелательными словами или предложениями прохладительных напитков. (Пожалуйста, будьте вежливы с авторами. Домогательства или оскорбления, скорее всего, принесут противоположный эффект.)
Вы можете обновить тикет с вашей ошибкой на https://github.com/Perl/perl5/issues, если выпущена новая версия Perl, и ошибка по-прежнему присутствует.
ПАРАМЕТРЫ
- -a
-
Адрес для отправки отчета вместо сохранения в файл.
- -b
-
Тело отчета. Если оно не указано в командной строке или в файле с -f, у вас будет возможность отредактировать отчет.
- -C
-
Не отправлять копию администратору при отправке отчета по электронной почте.
- -c
-
Адрес для отправки копии отчета при отправке отчета по электронной почте. По умолчанию используется адрес локального администратора Perl (записанный при сборке Perl).
- -d
-
Режим данных (по умолчанию, если вы перенаправляете или подключаете вывод). Выводит данные вашей конфигурации без сохранения или отправки по электронной почте. Можно использовать с -v для получения более полных данных.
- -e
-
Использовать редактор.
- -f
-
Файл, содержащий тело отчета. Используйте для быстрой отправки подготовленного отчета.
- -F
-
Файл для вывода результатов. По умолчанию perlbug.rep.
- -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 из канала или файла для целей тестирования.
- -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>), and 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–2023 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.38.0/perlbug