Crash reporter

Last updated
KDE Crash Handler (also known as Dr. Konqi), a crash reporter for KDE desktop environment KDE Crash Handler screenshot.png
KDE Crash Handler (also known as Dr. Konqi), a crash reporter for KDE desktop environment

A crash reporter is usually a system software whose function is to identify reporting crash details and to alert when there are crashes, in production or on development / testing environments. Crash reports often include data such as stack traces, type of crash, trends and version of software. These reports help software developers- Web, SAAS, mobile apps and more, to diagnose and fix the underlying problem causing the crashes. Crash reports may contain sensitive information such as passwords, email addresses, and contact information, and so have become objects of interest for researchers in the field of computer security. [1]

Contents

Implementing crash reporting tools as part of the development cycle has become a standard, and crash reporting tools have become a commodity, many of them are offered for free, like Crashlytics.

Many giant industry players, that are part of the software development eco-system have entered the game. Companies such as Twitter, Google and others are putting a lot of efforts on encouraging software developers to use their APIs, knowing this will increase their revenues down the road (through advertisements and other mechanisms). As they realize that they must offer elegant solutions for as many as possible development issues, otherwise their competitors will take actions, they keep adding advanced features. Crash reporting tools make an important development functionality that giant companies include in their portfolio of solutions.

Many crash reporting tools are specialized in mobile app. Many of them are SDKs.

macOS

In macOS there is a standard crash reporter in /System/Library/CoreServices/Crash Reporter.app. Crash Reporter.app sends the Unix crash logs to Apple for their engineers to look at. The top text field of the window has the crash log, while the bottom field is for user comments. Users may also copy and paste the log in their email client to send to the application vendor for them to use. Crash Reporter.app has 3 main modes: display nothing on crash, display "Application has crashed" dialog box or display Crash Report window.

Windows

Microsoft Windows includes a crash reporting service called Windows Error Reporting that prompts users to send crash reports to Microsoft for online analysis. [2] The information goes to a central database run by Microsoft. It consists of diagnostic information that helps the company or development team responsible for the crash to debug and resolve the issue if they choose to do so. Crash reports for third party software are available to third party developers who have been granted access by Microsoft.

The system considers all parts of the debug and release process, such that targeted bug fixes can be applied through Windows Update. In other words, only people experiencing a particular type of crash can be offered the bug fix, thus limiting exposure to an issue.

According to Der Spiegel , the Microsoft crash reporter has been exploited by NSA's Tailored Access Operations (TAO) unit to hack into the computers of Mexico's Secretariat of Public Security. According to the same source, Microsoft crash reports are automatically harvested in NSA's XKeyscore database, in order to facilitate such operations. [3]

CrashRpt

Another error reporting library for Windows is CrashRpt. CrashRpt library is a light-weight open source error handling framework for applications created in Microsoft Visual C++ and running under Windows. The library is distributed under New BSD License.

CrashRpt intercepts unhandled exceptions, creates a crash minidump file, builds a crash descriptor in XML format, presents an interface to allow user to review the crash report, and finally it compresses and sends the crash report to the software support team.

CrashRpt also provides a server-side command line tool for crash report analysis named crprober. The tool is able to read all received crash reports from a directory and generate a summary file in text format for each crash report. It also groups similar crash reports making it easier to determine the most popular problems. The crprober tool does not provide any graphical interface, so it is rather cryptic and difficult to use.

There is also an open-source server software named CrashFix Server that can store, organize and analyze crash reports sent by CrashRpt library. It can group similar crash reports, has a built-in bug tracker and can generate statistical reports. CrashFix server provides a web-based user interface making it possible for several project members to collaborate (upload debugging symbols, browse crash reports and associate bugs with crash reports).

Linux

ABRT

ABRT on Fedora 31 (2019-10) ABRT on Fedora 31 (2019-10).png
ABRT on Fedora 31 (2019-10)

ABRT (Automated Bug Reporting Tool) is an error reporting tool made for Fedora and Red Hat Enterprise Linux. The developers do not currently have plans for porting it to other Linux distributions. [4] ABRT intercepts core dumps or tracebacks from applications and (after user-confirmation) sends bug reports to various bug-tracking systems, such as Fedora Bugzilla .

Ubuntu Error tracker

Ubuntu hosts a public error tracker at errors.ubuntu.com which collects hundreds of thousands of error reports daily from millions of machines. [5] If a program crashes on Ubuntu, a crash handler (such as Apport) [6] will notify the user and offer to report the crash. If the user chooses to report the crash, the details (possibly including a core dump) will be uploaded to an Ubuntu server (daisy.ubuntu.com) for analysis. [7] A core dump is automatically processed to create a stack trace and crash signature. The crash signature is used to classify subsequent crash reports caused by the same error.

GNOME

Bug Buddy in GNOME 2.16 Screenshot-Bug Buddy.png
Bug Buddy in GNOME 2.16

Bug Buddy is the crash reporting tool used by the GNOME platform. When an application using the GNOME libraries crashes, Bug Buddy generates a stack trace using gdb and invites the user to submit the report to the GNOME bugzilla. The user can add comments and view the details of the crash report.

KDE

The crash reporting tool used by KDE is called Dr. Konqi. When an application using the KDE libraries crashes, Dr. Konqi generates a backtrace using gdb and invites the user to submit the report to the KDE bugzilla. The user can add comments and view the details of the crash report.

Mozilla

Talkback

Talkback (also known as the Quality Feedback Agent) was the crash reporter used by Mozilla software up to version 1.8.1 to report crashes of its products to a centralized server for aggregation or case-by-case analysis. [8] Talkback is proprietary software licensed to the Mozilla Corporation by SupportSoft. If a Mozilla product (e.g. Mozilla Firefox, Mozilla Thunderbird) were to crash with Talkback enabled, the Talkback agent would appear, prompting the user to provide optional information regarding the crash. Talkback does not replace the native OS crash reporter which, if enabled, will appear along with the Talkback agent. Talkback has been replaced by Breakpad in Firefox since version 3.

Breakpad

Mozilla Crash Reporter on Debian with Xfce4 Google Breakpad Mozilla Firefox Crash Reporter Minefield 3.0pre 2008041704 en-US Xfce4.png
Mozilla Crash Reporter on Debian with Xfce4

Breakpad (previously called Airbag) is an open-source replacement for Talkback. Developed by Google and Mozilla, it is used in current Mozilla products such as Firefox and Thunderbird. [9] [10] Its significance is being the first open source multi-platform crash reporting system.

Since 2007, Breakpad is included in Firefox on Windows and Mac OS X, and Linux. [11] Breakpad is typically paired with Socorro which receives and classifies crashes from users.

Breakpad itself is only part of a crash reporting system, as it includes no reporting mechanism.

Crashpad

Crashpad is an open-source crash reporter used by Google in Chromium. It was developed as a replacement for Breakpad due to an update in macOS 10.10 [12] which removed API's used by Breakpad. Crashpad currently consists of a crash-reporting client and some related tools for macOS and Windows, and is considered substantially complete for those platforms. Crashpad became the crash reporter client for Chromium on macOS as of March 2015, and on Windows as of November 2015. [13]

Mobile OSs

Android and iOS operating systems also have built in crash reporting functionality. [14] [15]

Related Research Articles

<span class="mw-page-title-main">Bugzilla</span> Web-based general-purpose bugtracker

Bugzilla is a web-based general-purpose bug tracking system and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License.

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Favicon</span> Icon associated with a particular web site

A favicon, also known as a shortcut icon, website icon, tab icon, URL icon, or bookmark icon, is a file containing one or more small icons associated with a particular website or web page. A web designer can create such an icon and upload it to a website by several means, and graphical web browsers will then make use of it. Browsers that provide favicon support typically display a page's favicon in the browser's address bar and next to the page's name in a list of bookmarks. Browsers that support a tabbed document interface typically show a page's favicon next to the page's title on the tab, and site-specific browsers use the favicon as a desktop icon.

In computing, the User-Agent header is an HTTP header intended to identify the user agent responsible for making a given HTTP request. Whereas the character sequence User-Agent comprises the name of the header itself, the header value that a given user agent uses to identify itself is colloquially known as its user agent string. The user agent for the operator of a computer used to access the Web has encoded within the rules that govern its behavior the knowledge of how to negotiate its half of a request-response transaction; the user agent thus plays the role of the client in a client–server system. Often considered useful in networks is the ability to identify and distinguish the software facilitating a network session. For this reason, the User-Agent HTTP header exists to identify the client software to the responding server.

<span class="mw-page-title-main">Human interface guidelines</span> Software development documents

Human interface guidelines (HIG) are software development documents which offer application developers a set of recommendations. Their aim is to improve the experience for the users by making application interfaces more intuitive, learnable, and consistent. Most guides limit themselves to defining a common look and feel for applications in a particular desktop environment. The guides enumerate specific policies. Policies are sometimes based on studies of human–computer interaction, but most are based on conventions chosen by the platform developers preferences.

This is a comparison of both historical and current web browsers based on developer, engine, platform(s), releases, license, and cost.

Mozilla Firefox has features that allow it to be distinguished from other web browsers, such as Chrome and Internet Explorer.

The Linux Desktop Testing Project (LDTP) is a testing tool that uses computer assistive technology to automate graphical user interface (GUI) testing. The GUI functionality of an application can be tested in Linux, macOS, Windows, Solaris, FreeBSD, and embedded system environments. The macOS version is named PyATOM, and the Windows version is Cobra. The LDTP is released as free and open-source software under the GNU Lesser General Public License (LGPL).

<span class="mw-page-title-main">Mozilla Application Suite</span> Discontinued Internet suite

The Mozilla Application Suite is a discontinued cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition by AOL. It was based on the source code of Netscape Communicator. The development was spearheaded by the Mozilla Organization from 1998 to 2003, and by the Mozilla Foundation from 2003 to 2006.

<span class="mw-page-title-main">PulseAudio</span> Sound server for Unix-like operating systems

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as FreeBSD, OpenBSD, and macOS; as well as Illumos distributions and the Solaris operating system. It serves as a middleware in between applications and hardware and handles raw PCM audio streams.

<span class="mw-page-title-main">Firefox 3.0</span> Web Browser

Mozilla Firefox 3.0 is a version of the Firefox web browser released on June 17, 2008, by the Mozilla Corporation.

<span class="mw-page-title-main">Windows Error Reporting</span> Crash reporting technology

Windows Error Reporting (WER) is a crash reporting technology introduced by Microsoft with Windows XP and included in later Windows versions and Windows Mobile 5.0 and 6.0. Not to be confused with the Dr. Watson debugging tool which left the memory dump on the user's local machine, Windows Error Reporting collects and offers to send post-error debug information using the Internet to Microsoft when an application crashes or stops responding on a user's desktop. No data is sent without the user's consent. When a crash dump reaches the Microsoft server, it is analyzed, and information about a solution is sent back to the user if available. Solutions are served using Windows Error Reporting Responses. Windows Error Reporting runs as a Windows service. Kinshuman Kinshumann is the original architect of WER. WER was also included in the Association for Computing Machinery (ACM) hall of fame for its impact on the computing industry.

<span class="mw-page-title-main">Ubuntu One</span> Cloud service operated by Canonical Ltd.

Ubuntu One is an OpenID-based single sign-on service operated by Canonical Ltd. to allow users to log onto many Canonical-owned Web sites. Until April 2014, Ubuntu One was also a file hosting service and music store that allowed users to store data "in the cloud".

The Web Open Font Format (WOFF) is a font format for use in web pages. WOFF files are OpenType or TrueType fonts, with format-specific compression applied and additional XML metadata added. The two primary goals are first to distinguish font files intended for use as web fonts from fonts files intended for use in desktop applications via local installation, and second to reduce web font latency when fonts are transferred from a server to a client over a network connection.

<span class="mw-page-title-main">Linspire</span> Linux distribution

Linspire is a commercial operating system based on Debian and Ubuntu and currently owned by PC/OpenSystems LLC. It had been owned by Linspire. Inc. from 2001 to 2008, and then by Xandros from 2008 to 2017.

Firefox was created by Dave Hyatt and Blake Ross as an experimental branch of the Mozilla browser, first released as Firefox 1.0 on November 9, 2004. Starting with version 5.0, a rapid release cycle was put into effect, resulting in a new major version release every six weeks. This was gradually accelerated further in late 2019, so that new major releases occur on four-week cycles starting in 2020.

<span class="mw-page-title-main">Snap (software)</span> Software deployment system for Linux by Canonical

Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for cloud applications but was later ported to also work for Internet of Things devices and desktop applications.

Version history for TLS/SSL support in web browsers tracks the implementation of Transport Layer Security protocol versions in major web browsers.

References

  1. Satvat, Kiavash; Saxena, Nitesh (2018). "Crashing Privacy: An Autopsy of a Web Browser's Leaked Crash Reports". arXiv: 1808.01718 [cs.CR].
  2. Using Microsoft Online Crash Analysis Archived 2007-01-02 at the Wayback Machine
  3. "The NSA Uses Powerful Toolbox in Effort to Spy on Global Networks". Der Spiegel. 29 December 2013.
  4. "Will ABRT ever support non RPM distros? · Issue #1606 · abrt/abrt". GitHub. 12 April 2022. Retrieved 2022-08-11.
  5. "Ubuntu Error Tracker".
  6. Ubuntu info on Apport, a crash handling software developed by Martin Pitt 2006–10, as described in his talk The Apport crash handling system: Bringing the fun back to segfaults Archived 2016-10-02 at the Wayback Machine
  7. "ErrorTracker design".
  8. "Mozilla Talkback server". Archived from the original on 2012-07-19. Retrieved 2006-09-21.
  9. Deploying the Airbag. BSBlog (Mozilla developer Benjamin Smedberg's weblog).
  10. Using Breakpad with Gran Paradiso (1.9a3). BSBlog (Mozilla developer Benjamin Smedberg's weblog).
  11. Bug 381099 – Turn on crash reporting by default (Win+Mac), mozilla.org bug tracker.
  12. "Introducing Crashpad" . Retrieved 2017-08-01.
  13. "Crashpad Homepage" . Retrieved 2017-08-01.
  14. "New Android app crash report tool already up and running". 22 May 2010. Retrieved 2011-06-04.
  15. "Technical Note TN2151" . Retrieved 2011-06-04.