From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 95579 invoked by alias); 31 Jan 2016 21:45:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 95520 invoked by uid 89); 31 Jan 2016 21:45:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:1001, Hx-languages-length:1459, encounter, gdbkdump X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Sun, 31 Jan 2016 21:45:01 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 6EA91AAB4 for ; Sun, 31 Jan 2016 21:44:58 +0000 (UTC) Received: by linux-2znx.site (Postfix, from userid 1001) id F32F2783E8B; Sun, 31 Jan 2016 22:44:57 +0100 (CET) From: Ales Novak To: gdb-patches@sourceware.org Subject: Enable gdb to open Linux kernel dumps Date: Sun, 31 Jan 2016 21:45:00 -0000 Message-Id: <1454276692-7119-1-git-send-email-alnovak@suse.cz> X-IsSubscribed: yes X-SW-Source: 2016-01/txt/msg00732.txt.bz2 Following patches are adding basic ability to access Linux kernel dumps using the libkdumpfile library. They're creating new target "kdump", so all one has to do is to provide appropriate debuginfo and then run "target kdump /path/to/vmcore". The tasks of the dumped kernel are mapped to threads in gdb. Except for that, there's a code adding understanding of Linux SLAB memory allocator, which means we can tell for the given address to which SLAB does it belong, or list objects for give SLAB name - and more. Patches are against "gdb-7.10-release" (but will apply elsewhere). Note: registers of task are fetched accordingly - either from the dump metadata (the active tasks) or from their stacks. It should be noted that as this mechanism varies amongst the kernel versions and configurations, my naive implementation currently covers only the dumps I encounter, handling of different kernel versions is to be added. In the near future, our plan is to remove the clumsy C-code handling this and reimplement it in Python - only the binding to certain gdb structures (e.g. thread, regcache) has to be added. A colleague of mine is already working on that. The github home of these patches is at: https://github.com/alesax/gdb-kdump/tree/for-next libkdumpfile lives at: https://github.com/ptesarik/libkdumpfile Fork adding the SLAB support lives at: https://github.com/tehcaster/gdb-kdump/tree/slab-support