From Fedora Project Wiki
Description
This test case is designed to confirm that ABRT can properly detect and diagnose application crashes from C/C++ programs.
How to test
- In
/etc/abrt/abrt_event.conf
, ensure a reporting mechanism is configured to save package data:
EVENT=post-create abrt-action-save-package-data include events.d/*.conf
- Make sure you have EVENT=post-create analyzer=CCpp abrt-action-analyze-c in
/etc/abrt/events.d/ccpp_events.conf
- If you changed configuration, restart the abrtd service with the command
su -c 'service abrtd restart'
. - Choose any ELF binary application and crash it. For this example, we will use the
sleep
command which is provided bycoreutils
. - Run the application you wish to capture a crash. If using the
sleep
command, open a terminal and run the command:sleep 5m
- In another terminal, force an application crash by locating the process id, and using the
kill
command, or usingpkill
orkillall
. For example,pkill -SIGSEGV sleep
- Open
abrt-gui
by clicking on applet icon or notification. - Pick the crash from the list, generate a crash report by pressing "Open" button, then provide meaningful information into text areas, choosing one of configured analyzers (e.g. Retrace Server). Then choose desired reporter facility
Expected Results
- A desktop notification and applet icon should appear in notification area with notification stating "Crash in package coreutils-1.2.3 has been detected"
- There are two buttons in the notification:
- "Report" -> opens the reporter dialog for the latest detected crash directly
- "Open ABRT" -> opens the main window
- Selecting the application from
abrt-gui
and reporting the failure should generate a proper backtrace. Proper backtrace should have symbolic information, for example:
#: Core was generated by `sleep 1260'. #: Program terminated with signal 6, Aborted. #: #0 0x00007f4b65f45380 in __nanosleep_nocancel () from /lib64/libc.so.6 #: #: Thread 1 (Thread 8328): #: #0 0x00007f4b65f45380 in __nanosleep_nocancel () from /lib64/libc.so.6 #: No symbol table info available. #: #1 0x00000000004037ab in rpl_nanosleep (requested_delay=0x7fff893f35c0, #: remaining_delay=0x0) at nanosleep.c:69 #: r = -516 #: delay = {tv_sec = 1260, tv_nsec = 0} #: t0 = {tv_sec = 29277, tv_nsec = 542118648} #: #2 0x000000000040321b in xnanosleep (seconds=<value optimized out>) #: at xnanosleep.c:112 #: overflow = false #: ts_sleep = {tv_sec = 1260, tv_nsec = 0} #: __PRETTY_FUNCTION__ = "xnanosleep" #: #3 0x000000000040176c in main (argc=2, argv=0x7fff893f3758) at sleep.c:147 #: i = 2 #: seconds = 1260 #: ok = true #: ...