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.conf
, ensure a reporting mechanism is configured for the CCpp plugin. A sample configuration that uses the Logger reporting plugin is noted belowCCpp = Logger
- Restart the abrtd service with the command
su -c 'service abrtd restart'
- Choose a C or C++ application to crash. 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
- A desktop notification should appear in notification area. Open
abrt-gui
by clicking on it - Pick the crash from the list, generate a crash report by pressing "Report" button, then choosing one of configured reporters (e.g. Logger, the simplest one). The prompt to choose a reporter plugin appears only if you have more than one configured
Expected Results
- The
abrt
application should detect the failure by updating the desktop icon - Clicking the icon, or running the command
abrt-gui
should display recently crashed applications - 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
- ...