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 e.g. Logger, review the backtrace and finally report data.
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
- "Show" -> 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 5m'.
- 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
- ...