Last modified 6 years ago Last modified on 08/04/11 11:26:21

Retrace server

Retrace server provides a coredump analysis and backtrace generation service over a network using HTTP protocol.

There are several reasons why it's a good idea. Before the retrace server, user needed to have all relevant debuginfos installed locally at the moment of backtrace creation. Downloading and installing debuginfos required a lot of time and storage space. Retrace server liberates users from this: user only sends a coredump packed along with some other required information (e.g. packages list) to the retrace server. The server then installs required debuginfo files, creates backtrace using standard debugging tools and provides it back to the user.


  • Michal Toman <mtoman@…>
  • Karel Klíč <kklic@…>


Retrace server has been in preparation and development since 2010-09. First, we developed initial design document (see documents attached to this page), which passed several reviews from people with particular relevant knowledge. As of 2010-11, we are actively developing the code. The service is running since Fedora 15. You can use Retrace server from ABRT instead of analyzing CCpp crashes locally.

Fedora 15 Feature Page for Retrace server

Goals for the first public release:

  • [x] anyone can use the interface (anonymous access)
  • [x] works reliably for most packages under reasonable load
  • [x] supports retracing only for coredumps using the same architecture as server (x86 32/64 bit)
  • [x] manual
  • [x] get a server in Fedora infrastructure, and deploy a public instance there


The code can be found in retrace-server fedorahosted git repository: The crash-catcher mailing list is used to coordinate the effort. We welcome all contributions there: please send your suggestions, feature requests, and patches.

TODO for Fedora 16

  • SELinux policy
  • Security review
  • Localization

Further development after Fedora 16:

  • coredump stripping
  • reporting statistics
  • calculate estimated time from statistics
  • user authentication
  • speed optimizations such as chroot caching
  • RPM package stripping
  • multiarch support
  • providing GDB debugging sessions
  • 3rd party packages support
  • support gdbserver