Отчёт об ошибке (программирование)

Поделись знанием:
(перенаправлено с «Breakpad»)
Перейти к: навигация, поиск

В программировании отчёт об ошибке (англ. error report или crash report) — это файл, содержащий техническую информацию об исключительной ситуации (исключении), произошедшей в программе на компьютере пользователя. В терминологии программирования критическая ошибка, которая приводит к аварийному завершению программы («падению»), также называется крэшем или «крашем» (от англ. crash).

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





Создание отчёта об ошибке

Отчёт об ошибке обычно создаётся специальной программой (англ. crash reporter). Целью такой программы является сбор данных о произошедшем крэше и отправка этих данных по сети Интернет некой третьей стороне, обычно этой третьей стороной является производитель программного обеспечения. Отчёт об ошибке призван помочь разработчикам программного обеспечения выяснить причину крэша и исправить её в последующих релизах программного продукта.

Mac OS X

В Mac OS X существует стандартная программа — сборщик отчётов об ошибке: /System/Library/CoreServices/Crash Reporter.app. Crash Reporter.app отправляет крэш-логи, стандартные для ОС Unix, в компанию Apple Computer, где эти логи анализируют их инженеры. В верхнем поле окна отчёта об ошибке содержится крэш лог, а в нижнем пользователь может ввести свои комментарии, например, рассказать что он делал в момент, когда произошёл крэш. Пользователи также могут скопировать лог и отправить его разработчику ПО для анализа. Crash Reporter.app работает в трёх основных режимах в случае ошибки: ничего не делать, вывести сообщение «Application has crashed» или вывести окно отчёта об ошибке.

Windows

Microsoft Windows XP включает в себя службу отправки отчётов об ошибке, называемую Windows Error Reporting (не путать с Dr. Watson), которая позволяет отправить отчёт об ошибке в компанию Microsoft для онлайн-анализа. Информация отправляется в централизованную базу данных, управляемую Microsoft. Отчёт содержит необходимую информацию, которая позволяет разработчику диагностировать причину ошибки и исправить её.

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

GNOME

На платформе GNOME для сбора и отправки отчётов об ошибке используется утилита Bug Buddy. Когда приложение, использующее библиотеки GNOME аварийно завершается, Bug Buddy генерирует снимок стека, используя отладчик gdb и предлагает пользователю отправить отчёт в систему GNOME bugzilla. Пользователь может добавить свой комментарий и посмотреть, что содержится в отчёте.

KDE

Утилита для отправки отчётов об ошибках в KDE называется Dr. Konqi.

Mozilla

Talkback

(также известный как Quality Feedback Agent) являлся утилитой для отправки сообщений об ошибках в программном обеспечении Mozilla вплоть до версии 1.8.1 для отправки отчётов об ошибках на централизованный сервер.[1] Talkback является проприетарным ПО, на которое Mozilla Corporation получила лицензию у компании SupportSoft. Когда продукты Mozilla (например Mozilla Firefox, Mozilla Thunderbird) аварийно завершали свою работу, агент Talkback предлагал пользователю ввести описание ошибки. Talkback не заменит собой встроенной в операционную систему программы для отправки отчётов об ошибке, которая, запускается наряду с агентом Talkback. Talkback был заменён на программу Breakpad в браузере Firefox начиная с версии 3.

Breakpad

[code.google.com/p/google-breakpad/ Breakpad] (ранее также известный как Airbag) — это замена Talkback. Он является ПО с открытым исходным кодом. Breakpad разрабатывается совместно Google и Mozilla, и используется в текущих продуктах, основанных на движке Mozilla, таких как Firefox или Thunderbird.[2][3] Этот продукт имеет большое значение, так как это первая мультиплатформенная утилита с открытым исходным кодом, предназначенная для отправки отчётов об ошибках.

Начиная с 27 мая 2007, Breakpad включён в стволовые сборки (trunk builds) Firefox 3 для Windows NT и Mac OS X, а также, несколько недель спустя, в Linux.[4]

Ubuntu

Вместе с релизом Ubuntu 6.10, Ubuntu включает утилиту Apport[5].

Apport перехватывает процессы, в которых произошло исключение и которые готовы создать дамп ядра (core dump), и записывает отчёты об ошибках в определённое место. Затем специальный демон, предлагает пользователю отправить отчёты в Ubuntu для их анализа.[6]

World of Warcraft

World of Warcraft — ещё одна программа, использующая своё собственное средство доставки отчётов об ошибке, называемое «Error Reporter». Однако данная утилита не всегда перехватывает исключения; иногда вместо него вызывается стандартная утилита-крэш репортёр, встроенная в ОС. Известно, что Error Reporter иногда сам завершается аварийно в процессе отправки отчёта об ошибке.

CrashRpt

Ещё одной библиотекой для доставки отчётов об ошибке в операционной системе Windows является CrashRpt[7][8]. Библиотека CrashRpt позволяет отлавливать исключения в программах, созданных в Microsoft Visual C++ и работающих в Windows. Библиотека распространяется по «новой» лицензии BSD.

CrashRpt перехватывает необработанные исключения, создаёт файл-минидамп, строит описатель ошибки в формате XML, предоставляет интерфейс с пользователем, и, наконец, сжимает отчёт и отправляет его группе поддержки приложения.

См. также

Напишите отзыв о статье "Отчёт об ошибке (программирование)"

Примечания

  1. [talkback-public.mozilla.org Mozilla Talkback server]. Проверено 21 сентября 2006. [www.webcitation.org/66hg6H9B0 Архивировано из первоисточника 5 апреля 2012].
  2. [benjamin.smedbergs.us/blog/2006-09-12/deploying-the-airbag/ Deploying the Airbag]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  3. [benjamin.smedbergs.us/blog/2007-03-29/using-breakpad-with-19a3/ Using Breakpad with Gran Paradiso (1.9a3)]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  4. [bugzilla.mozilla.org/show_bug.cgi?id=381099 Bug 381099 — Turn on crash reporting by default (Win+Mac)], mozilla.org bug tracker]
  5. [wiki.ubuntu.com/EdgyReleaseNotes#head-f5da53c61413ea1fca4132076c67af44e41e74ec EdgyReleaseNotes]. Проверено 14 февраля 2007.
  6. [wiki.ubuntu.com/Apport Apport]. Ubuntu Wiki. Проверено 14 февраля 2007.
  7. [code.google.com/p/crashrpt CrashRpt Project Page]. [www.webcitation.org/65BVpoNyr Архивировано из первоисточника 3 февраля 2012].
  8. [www.rsdn.ru/article/files/libs/crashrpt.xml Использование библиотеки CrashRpt]. [www.webcitation.org/66hg6kryB Архивировано из первоисточника 5 апреля 2012].

Отрывок, характеризующий Отчёт об ошибке (программирование)

– Пошел за другим, – продолжал Тихон, – подполоз я таким манером в лес, да и лег. – Тихон неожиданно и гибко лег на брюхо, представляя в лицах, как он это сделал. – Один и навернись, – продолжал он. – Я его таким манером и сграбь. – Тихон быстро, легко вскочил. – Пойдем, говорю, к полковнику. Как загалдит. А их тут четверо. Бросились на меня с шпажками. Я на них таким манером топором: что вы, мол, Христос с вами, – вскрикнул Тихон, размахнув руками и грозно хмурясь, выставляя грудь.
– То то мы с горы видели, как ты стречка задавал через лужи то, – сказал эсаул, суживая свои блестящие глаза.
Пете очень хотелось смеяться, но он видел, что все удерживались от смеха. Он быстро переводил глаза с лица Тихона на лицо эсаула и Денисова, не понимая того, что все это значило.
– Ты дуг'ака то не представляй, – сказал Денисов, сердито покашливая. – Зачем пег'вого не пг'ивел?
Тихон стал чесать одной рукой спину, другой голову, и вдруг вся рожа его растянулась в сияющую глупую улыбку, открывшую недостаток зуба (за что он и прозван Щербатый). Денисов улыбнулся, и Петя залился веселым смехом, к которому присоединился и сам Тихон.
– Да что, совсем несправный, – сказал Тихон. – Одежонка плохенькая на нем, куда же его водить то. Да и грубиян, ваше благородие. Как же, говорит, я сам анаральский сын, не пойду, говорит.
– Экая скотина! – сказал Денисов. – Мне расспросить надо…
– Да я его спрашивал, – сказал Тихон. – Он говорит: плохо зн аком. Наших, говорит, и много, да всё плохие; только, говорит, одна названия. Ахнете, говорит, хорошенько, всех заберете, – заключил Тихон, весело и решительно взглянув в глаза Денисова.
– Вот я те всыплю сотню гог'ячих, ты и будешь дуг'ака то ког'чить, – сказал Денисов строго.
– Да что же серчать то, – сказал Тихон, – что ж, я не видал французов ваших? Вот дай позатемняет, я табе каких хошь, хоть троих приведу.
– Ну, поедем, – сказал Денисов, и до самой караулки он ехал, сердито нахмурившись и молча.
Тихон зашел сзади, и Петя слышал, как смеялись с ним и над ним казаки о каких то сапогах, которые он бросил в куст.
Когда прошел тот овладевший им смех при словах и улыбке Тихона, и Петя понял на мгновенье, что Тихон этот убил человека, ему сделалось неловко. Он оглянулся на пленного барабанщика, и что то кольнуло его в сердце. Но эта неловкость продолжалась только одно мгновенье. Он почувствовал необходимость повыше поднять голову, подбодриться и расспросить эсаула с значительным видом о завтрашнем предприятии, с тем чтобы не быть недостойным того общества, в котором он находился.
Посланный офицер встретил Денисова на дороге с известием, что Долохов сам сейчас приедет и что с его стороны все благополучно.
Денисов вдруг повеселел и подозвал к себе Петю.
– Ну, г'асскажи ты мне пг'о себя, – сказал он.


Петя при выезде из Москвы, оставив своих родных, присоединился к своему полку и скоро после этого был взят ординарцем к генералу, командовавшему большим отрядом. Со времени своего производства в офицеры, и в особенности с поступления в действующую армию, где он участвовал в Вяземском сражении, Петя находился в постоянно счастливо возбужденном состоянии радости на то, что он большой, и в постоянно восторженной поспешности не пропустить какого нибудь случая настоящего геройства. Он был очень счастлив тем, что он видел и испытал в армии, но вместе с тем ему все казалось, что там, где его нет, там то теперь и совершается самое настоящее, геройское. И он торопился поспеть туда, где его не было.
Когда 21 го октября его генерал выразил желание послать кого нибудь в отряд Денисова, Петя так жалостно просил, чтобы послать его, что генерал не мог отказать. Но, отправляя его, генерал, поминая безумный поступок Пети в Вяземском сражении, где Петя, вместо того чтобы ехать дорогой туда, куда он был послан, поскакал в цепь под огонь французов и выстрелил там два раза из своего пистолета, – отправляя его, генерал именно запретил Пете участвовать в каких бы то ни было действиях Денисова. От этого то Петя покраснел и смешался, когда Денисов спросил, можно ли ему остаться. До выезда на опушку леса Петя считал, что ему надобно, строго исполняя свой долг, сейчас же вернуться. Но когда он увидал французов, увидал Тихона, узнал, что в ночь непременно атакуют, он, с быстротою переходов молодых людей от одного взгляда к другому, решил сам с собою, что генерал его, которого он до сих пор очень уважал, – дрянь, немец, что Денисов герой, и эсаул герой, и что Тихон герой, и что ему было бы стыдно уехать от них в трудную минуту.
Уже смеркалось, когда Денисов с Петей и эсаулом подъехали к караулке. В полутьме виднелись лошади в седлах, казаки, гусары, прилаживавшие шалашики на поляне и (чтобы не видели дыма французы) разводившие красневший огонь в лесном овраге. В сенях маленькой избушки казак, засучив рукава, рубил баранину. В самой избе были три офицера из партии Денисова, устроивавшие стол из двери. Петя снял, отдав сушить, свое мокрое платье и тотчас принялся содействовать офицерам в устройстве обеденного стола.
Через десять минут был готов стол, покрытый салфеткой. На столе была водка, ром в фляжке, белый хлеб и жареная баранина с солью.
Сидя вместе с офицерами за столом и разрывая руками, по которым текло сало, жирную душистую баранину, Петя находился в восторженном детском состоянии нежной любви ко всем людям и вследствие того уверенности в такой же любви к себе других людей.
– Так что же вы думаете, Василий Федорович, – обратился он к Денисову, – ничего, что я с вами останусь на денек? – И, не дожидаясь ответа, он сам отвечал себе: – Ведь мне велено узнать, ну вот я и узнаю… Только вы меня пустите в самую… в главную. Мне не нужно наград… А мне хочется… – Петя стиснул зубы и оглянулся, подергивая кверху поднятой головой и размахивая рукой.
– В самую главную… – повторил Денисов, улыбаясь.
– Только уж, пожалуйста, мне дайте команду совсем, чтобы я командовал, – продолжал Петя, – ну что вам стоит? Ах, вам ножик? – обратился он к офицеру, хотевшему отрезать баранины. И он подал свой складной ножик.