MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Как сообщить о зависшем Firefox

Примечание: Эта статья предназначена для разработчиков и продвинутых пользователей. Если это не вы, или вы просто хотите избавиться от зависания Firefox'а, не сообщая о нём, см. Firefox «зависает» или не реагирует — как исправить.

Ваш Firefox не реагирует на ввод?  Или вы часто видите сообщение типа «Firefox запущен, но не отвечает…»?  Обычно это означает, что что-то в Firefox'е зависло.  Это может быть ошибка в коде самого Firefox, например взаимная блокировка или бесконечный цикл, или может быть вызвано другим ПО, например расширением для Firefox, антивирусом, или даже вредоносным ПО или вирусом в вашем компьютере.

Какую информацию включать в багрепорт

  • Как обычно, следование Руководству по описанию ошибок значительно повышает шансы на то, что Ваш багрепорт приведёт к исправлению в Firefox.
  • Обратите внимание на загрузку ЦП процессом(-ами) Firefox'а: он спит, использует 100% ядра (это в программе может отображаться как 50% или 25% для многоядерных процессоров) или ни то ни другое?
  • Загружена ли Ваша система в остальном (высокая загрузка ЦП или занятая память, большая активность диска)?
  • Если Firefox точно завис, пожалуйста укажите в багрепорте примерное время, прошедшее между зависанием и провоцированием падения (см. ниже). Если Вы подозреваете полное зависание (а не тормоза), подождите одну минуту на незагруженной системе прежде, чем получать stack trace.
  • Ссылку на отчёт о падении для зависания, полученный описанным ниже образом.

Отправление отчёта о падении для зависшего Firefox'а

Самый лёгкий способ помочь команде по обеспечению стабильности Firefox’а с отладкой таких зависаний — спровоцировать падение Firefox’а и отправить отчёт о падении (crash report).  Потом создайте багрепорт с идентификатором отчёта о падении.  Шаги для вызывания падения будут отличаться на каждой из платформ:

Windows

Для Windows, команда по обеспечению стабильности написала утилиту, которая will inject a crash into Firefox, что спровоцирует падение с запуском программы для отправки отчёта о падении: Скачайте crashfirefox.exe здесь (исходные тексты). Будучи запущенной, эта утилита найдёт процесс firefox.exe и заставит его упасть (inject crashing code into it).  У неё ещё есть опции командной строки для «убивания» процессов с другими именами или по идентификатору процесса.

  • Запустите утилиту crashfirefox.exe.
  • Должно появиться окно для сообщения о падении.  Пожалуйста, поставьте нужную галочку, чтобы отправить отчёт о падении в Mozilla.
  • Запустите Firefox.  Введите «about:crashes» в адресную строку и кликните верхнюю ссылку в списке.  Отчёт о падении должен выглядеть примерно как этот, который был от падения из-за bug 1132241.
  • Создайте новый багрепорт на bugzilla.mozilla.org (желательно на английском языке), используя эту ссылку.

Linux и Mac

На Linux и Mac (Firefox >=27), программа для отправки отчёта запустится, если отправить процессу SIGABRT.  Идентификатор процесса (PID) Firefox'а можно найти с помощью любого менеджера задач.

Нахождение PID Firefox с помощью менеджера задач (скриншот с Linux).

Потом, в терминале, прибейте процесс Firefox командой типа:

# Замените 31042 PID'ом Firefox'а найденным выше.
kill -n SIGABRT 31042
  • Должно появиться окно для сообщения о падении.  Пожалуйста, поставьте нужную галочку, чтобы отправить отчёт о падении в Mozilla.
  • Запустите Firefox.  Введите «about:crashes» в адресную строку и кликните верхнюю ссылку в списке.  Отчёт о падении должен выглядеть примерно как этот, который был от падения из-за bug 1132241.
  • Создайте новый багрепорт на bugzilla.mozilla.org (желательно на английском языке), используя эту ссылку.

Другие техники

On OS X if you use a Nightly build (>= Firefox 16), you can use Activity Monitor's "Sample Process" feature to generate a sample. This won't produce useful results on a regular release/beta build.

Вместо вызывания падения Firefox'а, более продвинутые разработчики, умеющие использовать отладчик, могут попробовать присоединиться к процессу Firefox'а для его отладки.  Это подходит только при наличии у вас отладочных символов для Firefox'а, которые доступны для Windows на сервере отладочных символов Mozilla.

Метки документа и участники

 Внесли вклад в эту страницу: Aleksej, SphinxKnight
 Обновлялась последний раз: Aleksej,