Automatic problem management with anonymous reports

Jakub Filak 03ec7f8165 Merge pull request #170 from abrt/rhbz1119301_backtrace_dots 9 years ago
docs 91340705b1 Documentation cleanup 11 years ago
include d06baf103a unwind: determine shared libs from /proc/PID/maps 10 years ago
lib 501f0155f9 gdb: fix parsing of ppc64 stacktraces 9 years ago
python 1851d7edd8 Implement duphash for kernel oopses 10 years ago
ruby 360a838ec3 ruby: require 64bit library on 64bit arches 10 years ago
tests 501f0155f9 gdb: fix parsing of ppc64 stacktraces 9 years ago
.dir-locals.el 59b4badb3d Coding style for Emacs 13 years ago
.gitignore ce4178727a make the build in the the build directory to not pollute the source tree 10 years ago
.travis.yml 1f32b8854e travis: show testsuite.log if tests fail 11 years ago
COPYING 6a3cb52d6b Initial commit 13 years ago
Makefile.am 01232f9824 Add ruby bindings 10 years ago
NEWS 4b8893d6ac Release 0.14 10 years ago
README 91340705b1 Documentation cleanup 11 years ago
RELEASE 875c0ee95f Release 0.8 10 years ago
autogen.sh d313eaeba1 Add build dependency discovery to autogen.sh 10 years ago
configure.ac 4b8893d6ac Release 0.14 10 years ago
satyr.1.in a2601cce5f Include version string in the man page 11 years ago
satyr.c ff0ec67b0f satyr: Add command for debugging duphashes 10 years ago
satyr.pc.in 3b15a487b8 Btparser shared library renamed to satyr. 11 years ago
satyr.spec.in 4b8893d6ac Release 0.14 10 years ago

README

Failures of computer programs are omnipresent in the information technology
industry: they occur during software development, software testing, and also in
production. Failures occur in programs from all levels of the system stack.
The program environment differ substantially between kernel space, user space
programs written in C or C++, Python scripts, and Java applications, but the
general structure of failures is surprisingly similar between the mentioned
environments due to imperative nature of the languages and common concepts such
as procedures, objects, exceptions.

Satyr is a collection of low-level algorithms for program failure processing,
analysis, and reporting supporting kernel space, user space, Python, and Java
programs. Considering failure processing, it allows to parse failure
description from various sources such as GDB-created stack traces, Python stack
traces with a description of uncaught exception, and kernel oops message.
Infromation can also be extracted from the core dumps of unexpectedly
terminated user space processes and from the machine executable code of
binaries. Considering failure analysis, the stack traces of failed processes
can be normalized, trimmed, and compared. Clusters of similar stack traces can
be calculated. In multi-threaded stack traces, the threads that caused the
failure can be discovered. Considering failure reporting, the library can
generate a failure report in a well-specified format, and the report can be
sent to a remote machine.

Due to the low-level nature of the library and implementors' use cases, most of
its functionality is currently limited to Linux-based operating systems using
ELF binaries. The library can be extended to support Microsoft Windows and OS
X platforms without changing its design, but dedicated engineering effort would
be required to accomplish that.