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