Supported programming languages and software projects¶
Overview¶
| Langauge/Project | Package |
|---|---|
| C | abrt-addon-ccpp |
| C++ | abrt-addon-ccpp |
| Java | abrt-java-connector |
| Python | abrt-addon-python |
| Python 3 | abrt-addon-python3 |
| Ruby | rubygem-abrt |
| Linux (kernel oops) | abrt-addon-kerneloops |
| Linux (vmcore) | abrt-addon-vmcore |
| Linux (pstore) | abrt-addon-pstore |
| X.Org Server | abrt-addon-xorg |
C/C++¶
ABRT installs its own core dump handler via abrt-ccpp.service which when started,
overrides the default value of kernel’s core_pattern. This causes
C/C++ crashes to be handled by abrtd and by default prevents creation
of core.* files in crashed process’ current directory. More details available
in C/C++ hook design section.
Java¶
ABRT Java Connector is a JVM agent which reports uncaught Java exceptions to ABRT.
The agent registers several JVMTI event callbacks and has to be loaded into JVM using
-agentlib command line parameter.
Python¶
Python hooks override the default sys.excepthook with custom function reporting
uncaught Python 2 and Python 3 exceptions to abrtd.
Ruby¶
rubygem-abrt registers a custom handler using at_exit feature executed when
the program ends which allows to check for possible unhandled exceptions.
Linux kernel¶
Kernel oops¶
By checking the output of kernel logs, ABRT is able to catch and process so
called kernel oopses — non-fatal deviations from correct behavior of the Linux kernel.
This functionality is provided by abrt-addon-kerneloops and abrt-oops.service.
Kernel panic¶
ABRT is able to process vmcore files (kernel core dumps) produced on fatal
non-recoverable errors when kernel panics and reboot is required. If the
kernel crash dumping mechanism is enabled [1] vmcore file
is produced at the time of the crash. ABRT is then able to read and process
the vmcore file from /var/crash/ directory. This functionality
requires installing abrt-addon-vmcore and enabling abrt-vmcore.service.
Persistent storage¶
abrt-addon-pstoreoops package contains plugin for collecting kernel
oopses from platform dependent persistent storage (pstore) [2] [3].
Footnotes
| [1] | https://fedoraproject.org/wiki/How_to_use_kdump_to_debug_kernel_crashes |
| [2] | http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/testing/pstore |
| [3] | http://mjg59.dreamwidth.org/23554.html |