/crash-reporter

Tool for reporting application crashes

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

What is Crash Reporter?
==============

Crash Reporter is a tool for reporting application crashes, providing
developers with useful information for debugging, such as the core
dump. The collected crash data is sent to a post-processing server over
the network. It provides roughly similar functionality as tools such
as Bug-buddy¹ and Apport² do on desktop Linux distributions, although
Crash Reporter has a somewhat more minimal user interface.


Basic usage:
============

Crash Reporter should usually come with a pre-set valid configuration,
so after installation it should be immediately possible to start using
it. Crash Reporter can be enabled or disabled with its own Control Panel
applet that gets installed at the same time as the tool itself.

If core dumps from previous application crashes are already available
in the system when Crash Reporter is started, a notification is displayed.
If user interacts with the notification dialog will pop up, listing
the core files and gives and option to send or deleted selected files. If user
decides to send, files are uploaded to the post-processing server for analysis. 
If user decides to delete will be deleted from the system. Crash Reporter will
ask this question each time it starts, including immediately after boot. If
user merely wants to get rid of the cores without sending them, they
can safely be removed from /home/user/MyDocs/core-dumps.

When an application or a process crashes, user will see a notification, 
containing a message roughly like the following:

"The application 'Media Player' crashed.

If user interacts with the notification, a dialog will pop-up.

Options are fairly self-describing:

- 'Send' will attempt to send the current core dump to the
  post-processing server. After the core has been successfully sent, it
  will be deleted from the system.

- 'Delete' will remove the current core from the system.

For system processes that are not applications launchable via the Task
Navigator, Crash Reporter UI will be display the name of the actual
(rich-)core dump file instead, i.e. something like 'icd2-11-3322.rcore.lzo',
because it cannot map the name of crashed executable into a more
human-readable application name.


Configuration:
==============

For configuration settings related to communication between the
Crash Reporter client and a post-processing server, see README
contained in the approriate settings package 
(probably 'crash-reporter-settings-public', when using a public release).

For configuration settings related to privacy, see "Related tools"
section in this document or the documentation contained by
'sp-rich-core' package.


Related tools:
==============

While Crash Reporter could also in principle work with ordinary core dumps,
the crash data available for developers (only the traditional UNIX core
dump) would be rather limited. Thus, Crash Reporter depends on 'sp-rich-core'
package. When sp-rich-core is enabled (which happens by default when
it's installed), additional information such as syslog (if available),
memory usage information, process states and list of installed
packages are also included in the data dump (which can be recognized
from the .rcore.lzo suffix). Sp-rich-core package provides more
information about this in the form of rich-core-dumper (1) manual
page. The manual pages also describe how to configure the amount of
collected data in order to adjust to individual privacy preferences.


Short technical summary:
========================

The Crash Reporter client consists of two parts; the daemon and the UI. Of
these, only the daemon will be running constantly when Crash Reporter is
installed. The daemon monitors known locations for the cores
(/home/user/MyDocs/core-dumps, /media/mmc1/core-dumps and 
/media/mmc2/core-dumps directories) by using inotify. 

The UI will be invoked by the daemon when it detects that system has
new cores in the aforementioned locations ready to send to the
post-processing server. After the step chosen by the user has been
completed, the UI component will exit to conserve resources.
The UI uses HTTPS for communication with the post-processing server.


Links
=====

¹ http://directory.fsf.org/project/bugbuddy/
² https://wiki.ubuntu.com/Apport