Difference between revisions of "How do I create a bug report/ru"

From Free Pascal wiki
Jump to navigationJump to search
(3 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
== Ошибки компиляции кода ==
 
== Ошибки компиляции кода ==
Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим [http://freepascal.org/maillist.var списком рассылки FPC] или http://lists.lazarus-ide.org/listinfo списком рассылки Lazarus], или лучше присоединитесь к IRC-каналу <b>#fpc</b> или <b>#lazarus-ide</b> на irc.freenode.net. Тогда проблема должна быть решена быстрее.
+
Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим [http://freepascal.org/maillist.var списком рассылки FPC] или [http://lists.lazarus-ide.org/listinfo списком рассылки Lazarus], или лучше присоединитесь к IRC-каналу <b>#fpc</b> или <b>#lazarus-ide</b> на irc.freenode.net. Тогда проблема должна быть решена быстрее.
  
 
== Вход в систему / Создание новой учетной записи ==
 
== Вход в систему / Создание новой учетной записи ==
Line 35: Line 35:
 
* Если возможно, <b>загрузите небольшое тестовое приложение, которое воспроизводит баг</b>. Это, скорее всего, ускорит исправление.
 
* Если возможно, <b>загрузите небольшое тестовое приложение, которое воспроизводит баг</b>. Это, скорее всего, ускорит исправление.
 
* Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
 
* Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB|Создание Backtrace с помощью GDB]] для получения дополнительной информации.
+
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB/ru|создание файла обратной трассировки с помощью GDB]] для получения дополнительной информации.
 
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
 
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
 
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating A Patch]], который ускорит процесс.
 
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating A Patch]], который ускорит процесс.
Line 102: Line 102:
 
Другие форматы, такие как 7zip, Bzip и RAR, тоже подойдут. В наше время инструменты для них легко доступны.
 
Другие форматы, такие как 7zip, Bzip и RAR, тоже подойдут. В наше время инструменты для них легко доступны.
  
==Understanding the Report Status==
+
==Понимание Report Status(статуса сообщения)==
An issue can have the following states:
+
Проблема может иметь следующие состояния:
* New: it has entered in the bug tracker, but hasn't been assigned, acknowledged, confirmed or resolved.
+
* New (новая): она вошла в систему отслеживания ошибок, но не была назначена, признана, подтверждена или решена.
* Acknowledged: the Lazarus team has seen the issue and has set its target, though they have not necessarily verified that the bug is valid
+
* Acknowledged (признана): команда Lazarus обнаружила проблему и установила ее своей целью, хотя они не обязательно проверяли, что ошибка действительно существует
* Confirmed: a member of the Lazarus team has duplicated the bug or agrees that the feature should be implemented
+
* Confirmed (подтверждена): член команды Lazarus продублировал ошибку или согласен с тем, что эта функция должна быть реализована
* Assigned: the issue has been assigned to a Lazarus developer, who will try to fix/implement it
+
* Assigned (назначена): проблема была назначена разработчику Lazarus, который попытается ее исправить/реализовать
* Resolved: the person to whom the issue was assigned thinks the issue can be closed. Then he also sets the resolution, for example '''fixed''' or '''not an issue'''.
+
* Resolved (решена): человек, которому была назначена проблема, посчитал, что проблема может быть закрыта. Затем он также устанавливает разрешение, например, '''fixed''' (зафиксирована) или '''not an issue''' (не является проблемой).
* Feedback: the reporter should provide feedback to answer any questions posed by the Lazarus team, or to confirm that the issue is fixed satisfactorily.
+
* Feedback (Обратная связь): репортер должен предоставить отзыв, чтобы ответить на любые вопросы, заданные командой Lazarus, или подтвердить, что проблема устранена удовлетворительно.
* Closed: the reporter tested the fix and agrees with the fix. Periodically resolved issues that have not been closed by the reporter, will be a closed by the bug tracker administrator.
+
* Closed (закрыта): репортер проверил исправление и согласен с исправлением. Периодически решаемые проблемы, которые не были закрыты репортером, будут закрыты администратором системы отслеживания ошибок.
  
==See also==
+
==См.также==
* [[Creating A Patch]] If you have modified the source code to implement a solution, this article helps you to add it to your bug report in the most efficient way, so that developers can add it to the main code as fast as possible
+
* [[Creating A Patch]] Если вы изменили исходный код для реализации решения, эта статья поможет вам наиболее эффективно добавить его в отчет об ошибках, чтобы разработчики могли как можно быстрее добавить его в основной код.
* [[Database bug reporting]] Specific info and sample programs for database bugs
+
* [[Database bug reporting]] Специальная информация и примеры программ для ошибок базы данных
 
* [[Moderating the bug tracker]]
 
* [[Moderating the bug tracker]]
* The following page contains good tips about [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively].
+
* Следующая страница содержит полезные советы о том, [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html как эффективно сообщать об ошибках].

Revision as of 07:01, 13 August 2019

Afrikaans (af) Deutsch (de) English (en) français (fr) português (pt) русский (ru)

Пожалуйста, прочтите эту статью о том как писать баг-репорты

Если Вы обнаружили ошибку в Лазарусе и хотите сообщить о ней разработчикам, эта статья расскажет как это сделать.

Ошибки компиляции кода

Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим списком рассылки FPC или списком рассылки Lazarus, или лучше присоединитесь к IRC-каналу #fpc или #lazarus-ide на irc.freenode.net. Тогда проблема должна быть решена быстрее.

Вход в систему / Создание новой учетной записи

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

Проверка на наличие существующей ошибки в трекере

Используйте строку поиска в View Issues. Подсказка: поиск не является интеллектуальным; например, если у вас возникли проблемы с использованием TEdit.SelStart, выполните поиск по запросу «SelStart».

Если проблема уже была опубликована:

  • переоткройте ее, если отчет об ошибке был решен или закрыт - используйте кнопку Reopen Issue (переоткрыть вопрос)
  • добавьте примечание, если вы снова воспроизвели эту ошибку в ситуации, отличной от указанной
  • Вы можете настроить систему для отслеживания изменений в этом отчете об ошибках - используйте кнопку Monitor Issue (отслеживание проблемы)
Light bulb  Примечание: Вам необходимо войти в систему для выполнения этих операций, см. раздел Вход в систему / Создание новой учетной записи

Что следует публиковать в багтрекере?

  • Баги: если вы обнаружили ошибки, глюки или другие дефекты в FPC или Lazarus
  • Предложения: если вы нашли лучший способ сделать что-либо
  • Улучшения: если вы можете заставить что-то работать лучше

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

Баг

  • Важными полями являются поля ОС и программного Продукта, а также действия по воспроизведению этой проблемы. Если разработчики не смогут воспроизвести проблему, они не смогут и начать ее исправлять! Не забудьте упомянуть вашу конкретную архитектуру/конфигурацию (32- или 64-бит, с прямым(BOM-BE) или младшим(BOM-LE) порядком байтов, если оба возможны на вашей платформе, версия вашей операционной системы).
  • Если возможно, загрузите небольшое тестовое приложение, которое воспроизводит баг. Это, скорее всего, ускорит исправление.
  • Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
  • Если это падение среды, попробуйте создать обратную трассировку. См. создание файла обратной трассировки с помощью GDB для получения дополнительной информации.
  • Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
  • Если у вас есть возможное решение, вы можете добавить патч - см. Creating A Patch, который ускорит процесс.
  • Вы можете ускорить исправление ошибки, назначив вознаграждение, см. Bounties.

Регрессия, вызванная определенной ревизией

Если вы можете найти ревизию в транке, которая вызвала ошибку, пожалуйста, включите также в сообщение ее номер ревизии SVN. Отчет обычно присваивается автору этой редакции. Вы можете найти нужную ревизию с помощью "bisect"-процесса, который представляет собой двоичный поиск по ревизиям. Есть инструменты, которые помогут с этим:

  • Команда Git git bisect. Для этого вы должны использовать git_mirrors или ссылку git svn. Git быстр в этой операции, потому что вся история ревизий является локальной, и ничего не нужно извлекать с сервера.
  • Perl-скрипт svn-bisect, доступный в CPAN. Он имитирует команду "git bisect", но работает непосредственно с данными SVN.

Предложение

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

Улучшение

  • Если вы реализовали новую функцию в исходном коде или улучшили документацию в файлах XML, создайте патч - см. Создание исправления.
  • Если вы улучшили перевод в языковом .po-файле, приложите весь .po-файл (а не diff). * Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.

Перевод сообщений на английский язык

Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать online переводчики (например: http://translate.google.com/).

При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"

Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru

Ошибки отладчика

Частая ситуация, при которой программа может не запускаться, из-за отладчика, выдавая подобное сообщение:

Lazarus error ru.png

  • Для того, чтобы выяснить в чём проблема, ОБЯЗАТЕЛЬНО вместе с сообщением об ошибке, добавляйте

файл, содержащий вывод отладчика:

Вид (View) -> Окна отладки (Debugging Window) -> Вывод отладчика (Debugger Output).

Скопируйте всё содержимое окна, и сохраните в файл.

  • Укажите операционную систему и версию Лазаруса.
  • Если есть возможность, проверьте с другими версиями отладчика, либо более поздними версиями Лазаруса (SVN версией) - возможно, что эта ошибка уже была устранена.

Общее решение проблемы с gdb отладчиком

Просто отключить его!

Окружение (Environment) -> Параметры ... (Options) -> Отладчик (Debugger) -> Тип отладчика и путь (Debugger type and path) -> none

Но отлаживаться придётся, используя журналирование (writeln), а также использовать свои знания кода и работы алгоритма программы.

error 193

Если, при просмотре вывода отладчика, вам встретится подобная строка:

 &"Error creating process C:/Documents and Settings/UserName/Projects/project1.exe, (error 193)\n"

Ошибка возникает, если полный путь проекта содержит пробел(ы). Решение - сохранить проект в другую папку (без пробелов).

Это не ограничение Лазаруса или FPC, это ограничение отладчика.

Вложения

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

  • zip (.zip)
  • gzip (.gz)
  • tar.gzip (.tgz/.tar.gz)

Другие форматы, такие как 7zip, Bzip и RAR, тоже подойдут. В наше время инструменты для них легко доступны.

Понимание Report Status(статуса сообщения)

Проблема может иметь следующие состояния:

  • New (новая): она вошла в систему отслеживания ошибок, но не была назначена, признана, подтверждена или решена.
  • Acknowledged (признана): команда Lazarus обнаружила проблему и установила ее своей целью, хотя они не обязательно проверяли, что ошибка действительно существует
  • Confirmed (подтверждена): член команды Lazarus продублировал ошибку или согласен с тем, что эта функция должна быть реализована
  • Assigned (назначена): проблема была назначена разработчику Lazarus, который попытается ее исправить/реализовать
  • Resolved (решена): человек, которому была назначена проблема, посчитал, что проблема может быть закрыта. Затем он также устанавливает разрешение, например, fixed (зафиксирована) или not an issue (не является проблемой).
  • Feedback (Обратная связь): репортер должен предоставить отзыв, чтобы ответить на любые вопросы, заданные командой Lazarus, или подтвердить, что проблема устранена удовлетворительно.
  • Closed (закрыта): репортер проверил исправление и согласен с исправлением. Периодически решаемые проблемы, которые не были закрыты репортером, будут закрыты администратором системы отслеживания ошибок.

См.также

  • Creating A Patch Если вы изменили исходный код для реализации решения, эта статья поможет вам наиболее эффективно добавить его в отчет об ошибках, чтобы разработчики могли как можно быстрее добавить его в основной код.
  • Database bug reporting Специальная информация и примеры программ для ошибок базы данных
  • Moderating the bug tracker
  • Следующая страница содержит полезные советы о том, как эффективно сообщать об ошибках.