Звіт про помилку (програмування)
У програмуванні звіт про помилку (англ. error report або crash report - це файл, який містить технічні відомості про виняткову ситуацію (виняток), що сталася в програмі на комп'ютері користувача. У термінології програмування критична помилка, яка призводить до аварійного завершення програми («падіння»), також називається креш або «краш» (від англ. crash)
Звіти про помилки часто мають в собі такі дані, як: вид аварійної відмови, образ стека, версія програми, тип центрального процесора, версія операційної системи, а також журнал (лог) програми.
Звіт про помилку зазвичай створюється спеціальною програмою (англ. Crash reporter). Метою такої програми є збір даних про подію аварійної відмови та надсилання цих даних мережею якійсь третій стороні, зазвичай цією третьою стороною є виробник програмного забезпечення. Звіт про помилку покликаний допомогти розробникам програмного забезпечення з'ясувати причину крешу і виправити її в наступних випусках програмного продукту.
У Mac OS X існує стандартна програма - складальник звітів про помилку: /System/Library/CoreServices/Crash Reporter.app. Crash Reporter.app відправляє креш-логи, стандартні для ОС Unix, в компанію Apple Computer, де ці логи аналізують їх інженери. У верхньому полі вікна повідомлення про помилку міститься креш-лог, а в нижньому користувач може ввести свої коментарі, наприклад, розповісти що він робив в мить, коли стався креш. Користувачі також можуть скопіювати лог і відправити його розробнику ПО для аналізу. Crash Reporter.app працює в трьох основних режимах в разі помилки: нічого не робити, вивести повідомлення «Application has crashed» або вивести вікно звіту про помилку.
Microsoft Windows XP має службу надсилання звітів про помилку, звану Windows Error Reporting (не плутати з Dr. Watson), яка дозволяє надіслати звіт про помилку в компанію Microsoft для онлайн-аналізу. Відомості надсилаються в централізовану базу даних, керовану Microsoft. Звіт містить необхідні відомості, які дозволяють розробникові діагностувати причину помилки та виправити її.
Windows ймовірно має найскладнішу систему аналізу помилок на сьогодні, в якій централізована база даних може бути налаштована для збору додаткових відомостей від користувачів, які відчувають певний вид проблеми. Система охоплює всі частини процесу налагодження і випуску ПЗ таким чином, що виправлення можуть бути застосовані до ПЗ на комп'ютері користувача автоматично через службу Windows Update.
На платформі GNOME для збору і надсилання звітів про помилку використовується засіб Bug Buddy. Коли застосунок, що використовує бібліотеки GNOME аварійно завершується, Bug Buddy утворює знімок стека, використовуючи налагоджувальник gdb і пропонує користувачеві відправити звіт в систему GNOME bugzilla. Користувач може додати свій коментар і подивитися, що міститься у звіті.
Засіб надсилання звітів про помилки в KDE називається Dr. Konqi.
(також відомий як 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 [Архівовано 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 6.10, Ubuntu включає засіб Apport [5].
Apport перехоплює процеси, в яких відбувся виняток і які готові створити дамп ядра (core dump), і записує звіти про помилки в певне місце. Потім спеціальний демон пропонує користувачеві надіслати звіти в Ubuntu для їх аналізу. [6]
World of Warcraft - гра, яка використовує свій власний засіб доставляння звітів про помилки, званий «Error Reporter». Однак даний засіб не завжди перехоплює винятки; іноді замість нього викликається стандартний засіб-креш репортер, вбудований у ОС. Відомо, що Error Reporter іноді сам завершується аварійно в процесі надсилання звіту про помилку.
Ще однією бібліотекою для надсилання звітів про помилку в операційній системі Windows є CrashRpt [7] [8]. Бібліотека CrashRpt дозволяє відловлювати винятки в програмах, створених в Microsoft Visual C ++ і працюючих у Windows. Бібліотека поширюється по «новій» ліцензії BSD.
CrashRpt перехоплює необроблені винятки, створює файл-мінідамп, будує описувач помилки в форматі XML, надає інтерфейс з користувачем, і, нарешті, стискає звіт і надсилає його групі підтримки програми.
- ↑ Mozilla Talkback server. Архів оригіналу за 5 квітня 2012. Процитовано 21 вересня 2006.
- ↑ Deploying the Airbag [Архівовано 28 червня 2008 у Wayback Machine.]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
- ↑ Using Breakpad with Gran Paradiso (1.9a3) [Архівовано 15 червня 2008 у Wayback Machine.]. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
- ↑ Bug 381099 — Turn on crash reporting by default (Win+Mac) [Архівовано 27 липня 2020 у Wayback Machine.], mozilla.org bug tracker]
- ↑ EdgyReleaseNotes. Архів оригіналу за 13 червня 2007. Процитовано 14 лютого 2007.
- ↑ Apport. Ubuntu Wiki. Архів оригіналу за 11 травня 2015. Процитовано 14 лютого 2007.
- ↑ CrashRpt Project Page. Архів оригіналу за 3 лютого 2012. Процитовано 20 серпня 2009.
- ↑ Использование библиотеки CrashRpt. Архів оригіналу за 5 квітня 2012. Процитовано 5 липня 2010.