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

From Free Pascal wiki
Jump to navigationJump to search
Line 21: Line 21:
 
{{Note| Вам необходимо войти в систему для выполнения этих операций, см. раздел [[How_do_I_create_a_bug_report/ru#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83_.2F_.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B9_.D1.83.D1.87.D0.B5.D1.82.D0.BD.D0.BE.D0.B9_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8|Вход в систему / Создание новой учетной записи]]}}
 
{{Note| Вам необходимо войти в систему для выполнения этих операций, см. раздел [[How_do_I_create_a_bug_report/ru#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83_.2F_.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B9_.D1.83.D1.87.D0.B5.D1.82.D0.BD.D0.BE.D0.B9_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8|Вход в систему / Создание новой учетной записи]]}}
  
== Создание сообщения об ошибке ==
+
== Что следует публиковать в багтрекере? ==
# Откройте страницу [http://bugs.freepascal.org/set_project.php?project_id=1 Lazarus баг-трекера]
+
* Баги: если вы обнаружили ошибки, глюки или другие дефекты в [[FPC]] или [[Lazarus]]
# Вы должны войти в трекер под своим аккаунтом.
+
* Предложения: если вы нашли лучший способ сделать что-либо
# Откройте страницу [http://bugs.freepascal.org/bug_report_advanced_page.php Report Issue]. Заполните как можно больше информации об ошибке. Чем более точные данные, тем лучше. Обязательно укажите, что происходит "не так" и "как должно работать". После заполнения полей нажмите кнопку Submit Report
+
* Улучшения: если вы можете заставить что-то работать лучше
Важные информация об ошибке:
 
* '''КАК ВОСПРОИЗВЕСТИ ОШИБКУ''' Если разработчикам не удастся её воспроизвести, то исправление займёт гораздо больше времени.
 
* Widgetset и Операционная система
 
* Версия Лазаруса (официальный релиз (его номер) или SVN версия (номер ревизии)
 
* Если ошибка приводит к падению программы или Лазаруса, то приложите стек вызовов. Обычно он пишется в консоль программы. Подробнее вы можете узнать [[Creating a Backtrace with GDB|здесь]].
 
  
* Если есть возможность то '''обязательно''' добавьте к сообщению об ошибке небольшой тестовый проект, который воспроизводит ошибку.
+
Пожалуйста, обратите внимание: багтрекер '''не''' предназначен для "бытовых" вопросов. Они должны задаваться на [http://forum.lazarus.freepascal.org/ форуме].
* Если ошибка связана с графикой (графическим интерфейсом программы), то сделайте скриншоты
 
* Если есть возможность проверить ошибку на разных системах, то обязательно протестируйте. Это поможет понять, является ли ошибка системозависимой или нет. А значит ускорит её исправление.
 
* Ускорить устранение ошибки, поможет предложенный Вами, за её решение, [[Bounties|бонус]]. Устранять ошибки могут не только разработчики Лазаруса, но и любой программист владеющий FPC/Lazarus-ом.
 
  
 +
* Для создания отчета перейдите в [http://bugs.freepascal.org/set_project.php?project_id=1 багтрекер Lazarus]. Вы должны быть залогированы в системе, см. раздел [[How_do_I_create_a_bug_report/ru#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83_.2F_.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B9_.D1.83.D1.87.D0.B5.D1.82.D0.BD.D0.BE.D0.B9_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8| Создание новой учетной записи]].
 +
* Перейдите на страницу [http://bugs.freepascal.org/bug_report_advanced_page.php Report Issue] (Сообщить о проблеме). Заполните столько, сколько вы можете и знаете. Чем конкретнее, тем лучше.
 +
 +
=== Баг ===
 +
* Важными полями являются поля ОС и программного Продукта, а также действия по воспроизведению этой проблемы. Если разработчики не смогут воспроизвести проблему, они не смогут и начать ее исправлять! Не забудьте упомянуть вашу конкретную архитектуру/конфигурацию (32- или 64-бит, с прямым(BOM-BE) или младшим(BOM-LE) порядком байтов, если оба возможны на вашей платформе, версия вашей операционной системы).
 +
* Если возможно, <b>загрузите небольшое тестовое приложение, которое воспроизводит баг</b>. Это, скорее всего, ускорит исправление.
 +
* Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
 +
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB|Создание Backtrace с помощью GDB]] для получения дополнительной информации.
 +
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
 +
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating A Patch]], который ускорит процесс.
 +
* Вы можете ускорить исправление ошибки, назначив вознаграждение, см. [[Bounties]].
 +
 +
=== Regression caused by a certain revision ===
 +
If you can find a revision in trunk that caused a bug, please include also its SVN revision number. The report will usually be assigned to the author of that revision.
 +
You can find a quilty revision by a "bisect" process which is a binary search over the revisions. There are tools to help with that:
 +
* A Git command [https://git-scm.com/docs/git-bisect git bisect]. For that you must use [[git_mirrors]] or a [[Lazarus_git-svn|git svn link]]. Git is fast in this operation because all the revision history is local and nothing needs to fetched from a server.
 +
* A Perl script [http://search.cpan.org/dist/App-SVN-Bisect/bin/svn-bisect svn-bisect], available in CPAN. It mimics the "git bisect" command but works on SVN data directly.
 +
 +
=== Suggestion ===
 +
Explain your idea. A GUI mockup or an example of another tool using the feature can be helpful.
 +
 +
=== Improvement ===
 +
* If you have implemented a new feature in the source code or improved documentation in the XML files, create a patch - see [[Creating A Patch]].
 +
* If you have improved translation in a language .po file, attach the whole .po file (not a diff).
 +
* If you have another resource file, for example an icon, attach it to the report.
 +
----
 +
----
 
=== Перевод сообщений на английский язык ===
 
=== Перевод сообщений на английский язык ===
  
Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать on-line переводчики (например: http://translate.google.com/).  
+
Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать online переводчики (например: http://translate.google.com/).  
  
 
При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"
 
При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"
  
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 
=== Вход в систему/Создание аккаунта ===
 
Вам нужно быть зарегистрированным пользователем, чтобы править или добавлять новые сообщения об ошибках.
 
Вы так же можете войти в систему, как анонимный пользователь, но вы сможете только просматривать сообщения.
 
Если у вас уже есть аккаунт, то для входа в систему вам нужно зайти на эту [http://bugs.freepascal.org/login_page.php страницу]. Если у вас нет аккаунта, то вам следует зарегистрироваться [http://bugs.freepascal.org/signup_page.php здесь].
 
  
 
== Ошибки отладчика ==
 
== Ошибки отладчика ==

Revision as of 17:41, 12 August 2019

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

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

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

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

Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим списком рассылки FPC или http://lists.lazarus-ide.org/listinfo списком рассылки 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).
  • Если это падение среды, попробуйте создать обратную трассировку. См. Создание Backtrace с помощью GDB для получения дополнительной информации.
  • Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
  • Если у вас есть возможное решение, вы можете добавить патч - см. Creating A Patch, который ускорит процесс.
  • Вы можете ускорить исправление ошибки, назначив вознаграждение, см. Bounties.

Regression caused by a certain revision

If you can find a revision in trunk that caused a bug, please include also its SVN revision number. The report will usually be assigned to the author of that revision. You can find a quilty revision by a "bisect" process which is a binary search over the revisions. There are tools to help with that:

  • A Git command git bisect. For that you must use git_mirrors or a git svn link. Git is fast in this operation because all the revision history is local and nothing needs to fetched from a server.
  • A Perl script svn-bisect, available in CPAN. It mimics the "git bisect" command but works on SVN data directly.

Suggestion

Explain your idea. A GUI mockup or an example of another tool using the feature can be helpful.

Improvement

  • If you have implemented a new feature in the source code or improved documentation in the XML files, create a patch - see Creating A Patch.
  • If you have improved translation in a language .po file, attach the whole .po file (not a diff).
  • If you have another resource file, for example an icon, attach it to the report.


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

Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать 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, GZip (Tar.gzip) архиваторы.

Архивы Rar, 7z, конечно, распаковать можно, но для этого, обычно, необходима установка дополнительных программ. А это значит, что файл будет рассмотрен значительно позднее, либо вообще не будет рассмотрен.