Звіт про помилку (програмування)

У програмуванні звіт про помилку (англ. 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 ред.

Breakpad [Архівовано 3 лютого 2012 у WebCite] (раніше також відомий як 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. Mozilla Talkback server. Архів оригіналу за 5 квітня 2012. Процитовано 21 вересня 2006.
  2. Deploying the Airbag [Архівовано 28 червня 2008 у Wayback Machine.]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  3. Using Breakpad with Gran Paradiso (1.9a3) [Архівовано 15 червня 2008 у Wayback Machine.]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  4. Bug 381099 — Turn on crash reporting by default (Win+Mac) [Архівовано 27 липня 2020 у Wayback Machine.], mozilla.org bug tracker]
  5. EdgyReleaseNotes. Архів оригіналу за 13 червня 2007. Процитовано 14 лютого 2007.
  6. Apport. Ubuntu Wiki. Архів оригіналу за 11 травня 2015. Процитовано 14 лютого 2007.
  7. CrashRpt Project Page. Архів оригіналу за 3 лютого 2012. Процитовано 20 серпня 2009.
  8. Использование библиотеки CrashRpt. Архів оригіналу за 5 квітня 2012. Процитовано 5 липня 2010.