Change the future

Darkserver: Help to Debug Userspace

Kushal Das

Audience level:
Intermediate
Category:
Other

Description

Darkserver is a set of tools and service written in Python to help developers to debug their applications & libraries. Darkserver project was started to use Build-ID feature of compiler toolchains and help developer tools to identify exact package builds from which process images (e.g. core dumps) come. This can enable their analysis, debugging profiling.

Abstract

Darkserver is a set of tools and service written in Python to help developers to debug their applications & libraries. This was a [Fedora 17 feature] (http://fedoraproject.org/wiki/Features/Darkserver).

Introduction

Introduce people to debugging userspace libraries & applications (which includes python extensions written in C). I will also explain build-id feature of compiler toolchain.

Architecture of the project

I will start explaining on how we are extracting the required information from binary packages. This will including our build-system monitoring tools, how we are using a distributed redis based task queue (again written in Python, http://retask.readthedocs.org/). The public facing part of the project is a simple Django application which provides information in JSON format. Server code can be found at github We also have a client side command line tool called darkclient, which uses requests module and provides the output in a machine readable format.

Handling different distribution package format

Right now the project can handle any RPM based packages, work is going on to handle .deb and other package formats also so that we can support maximum number of distributions. I will explain how others join in to help us there.