Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757123Ab0HOGd1 (ORCPT ); Sun, 15 Aug 2010 02:33:27 -0400 Received: from mail-ww0-f44.google.com ([74.125.82.44]:39274 "EHLO mail-ww0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755539Ab0HOGdZ convert rfc822-to-8bit (ORCPT ); Sun, 15 Aug 2010 02:33:25 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=UxRHi+dHFJ5MWohZ4oQJyKhN0ZJx3BwnXUqnsoQCprtJQQn0bt3w0AyFeAI1RnEPKB bVvvg7I/nFJqSj0en10i8JuFNzXjfv8yhM7wFlc7f0Xg6I04pa3p5bNHuXIFg7dyea4d vlvZikxWMuHK6o5Bjkt5fc6afCi5IgO5AGcQE= MIME-Version: 1.0 In-Reply-To: <4C642BCD.6070201@vmware.com> References: <4C6311E0.5070909@vmware.com> <4C642BCD.6070201@vmware.com> From: Hui Zhu Date: Sun, 15 Aug 2010 14:33:03 +0800 Message-ID: Subject: Re: Linux Kernel GDB tracepoint module demo release To: "gdb@sourceware.org" , "linux-kernel@vger.kernel.org" Cc: Thiago Jung Bauermann , Michael Snyder Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5038 Lines: 142 Support x86-64 now. On Fri, Aug 13, 2010 at 01:13, Michael Snyder wrote: > Very interesting then. ?I'd like to see you continue this work. > > > Hui Zhu wrote: >> >> KGTP use Kprobes, I think it can work with most part of kernel. >> >> Thanks, >> Hui >> >> On Thu, Aug 12, 2010 at 05:10, Michael Snyder wrote: >>> >>> Actually, this is kind of interesting. >>> Can your system set a tracepoint at any arbitrary location in the >>> kernel? ?If so, I think that makes it more powerful than existing >>> systems such as LTTng, which can only trace statically pre-determined >>> locations. >>> >>> Hui Zhu wrote: >>>> >>>> Hi, >>>> >>>> GDB Tracepoint >>>> (http://sourceware.org/gdb/current/onlinedocs/gdb/Tracepoints.html) >>>> is new feature that make GDB can debug real-time program. >>>> I think this feature is very fit for debug Linux Kernel. ?So I make a >>>> lkm to make kernel support it. You can get it in >>>> https://code.google.com/p/kgtp/ >>>> >>>> I just release the demo for it. ?It just support collect $reg in >>>> x86_32. ?I will add the other tracepoint support in the future. >>>> >>>> For example: >>>> tar vxjf gtp_20100811.tar.bz2 >>>> cd gtp >>>> make >>>> insmod gtp.ko >>>> gdb ./vmlinux >>>> GNU gdb (GDB) 7.2.50.20100720-cvs >>>> Copyright (C) 2010 Free Software Foundation, Inc. >>>> License GPLv3+: GNU GPL version 3 or later >>>> >>>> This is free software: you are free to change and redistribute it. >>>> There is NO WARRANTY, to the extent permitted by law. ?Type "show >>>> copying" >>>> and "show warranty" for details. >>>> This GDB was configured as "i686-pc-linux-gnu". >>>> For bug reporting instructions, please see: >>>> ... >>>> Reading symbols from /vmlinux...done. >>>> (gdb) target remote /proc/gtp >>>> Remote debugging using /proc/gtp >>>> 0x00000000 in ?? () >>>> (gdb) trace vfs_readdir >>>> Tracepoint 1 at 0xc01a1ac0: file >>>> /home/teawater/kernel/linux-2.6/fs/readdir.c, line 23. >>>> (gdb) actions >>>> Enter actions for tracepoint 1, one per line. >>>> End with a line saying just "end". >>>>> >>>>> collect $reg >>>>> end >>>> >>>> (gdb) tstart >>>> (gdb) shell ls >>>> (gdb) tstop >>>> (gdb) tfind >>>> Found trace frame 0, tracepoint 1 >>>> #0 ?0xc01a1ac1 in vfs_readdir (file=0xc5528d00, filler=0xc01a1900 >>>> , >>>> ? buf=0xc0d09f90) at /home/teawater/kernel/linux-2.6/fs/readdir.c:23 >>>> 23 ? ? ?/home/teawater/kernel/linux-2.6/fs/readdir.c: No such file or >>>> directory. >>>> ? ? ? in /home/teawater/kernel/linux-2.6/fs/readdir.c >>>> (gdb) info reg >>>> eax ? ? ? ? ? ?0xc5528d00 ? ? ? -984445696 >>>> ecx ? ? ? ? ? ?0xc0d09f90 ? ? ? -1060069488 >>>> edx ? ? ? ? ? ?0xc01a1900 ? ? ? -1072031488 >>>> ebx ? ? ? ? ? ?0xfffffff7 ? ? ? -9 >>>> esp ? ? ? ? ? ?0xc0d09f8c ? ? ? 0xc0d09f8c >>>> ebp ? ? ? ? ? ?0x0 ? ? ?0x0 >>>> esi ? ? ? ? ? ?0x8061480 ? ? ? ?134616192 >>>> edi ? ? ? ? ? ?0xc5528d00 ? ? ? -984445696 >>>> eip ? ? ? ? ? ?0xc01a1ac1 ? ? ? 0xc01a1ac1 >>>> eflags ? ? ? ? 0x286 ? ?[ PF SF IF ] >>>> cs ? ? ? ? ? ? 0x60 ? ? 96 >>>> ss ? ? ? ? ? ? 0x8061480 ? ? ? ?134616192 >>>> ds ? ? ? ? ? ? 0x7b ? ? 123 >>>> es ? ? ? ? ? ? 0x7b ? ? 123 >>>> fs ? ? ? ? ? ? 0x0 ? ? ?0 >>>> gs ? ? ? ? ? ? 0x0 ? ? ?0 >>>> (gdb) tfind >>>> Found trace frame 1, tracepoint 1 >>>> 0xc01a1ac1 ? ? ?23 ? ? ?in /home/teawater/kernel/linux-2.6/fs/readdir.c >>>> (gdb) info reg >>>> eax ? ? ? ? ? ?0xc5528d00 ? ? ? -984445696 >>>> ecx ? ? ? ? ? ?0xc0d09f90 ? ? ? -1060069488 >>>> edx ? ? ? ? ? ?0xc01a1900 ? ? ? -1072031488 >>>> ebx ? ? ? ? ? ?0xfffffff7 ? ? ? -9 >>>> esp ? ? ? ? ? ?0xc0d09f8c ? ? ? 0xc0d09f8c >>>> ebp ? ? ? ? ? ?0x0 ? ? ?0x0 >>>> esi ? ? ? ? ? ?0x8061480 ? ? ? ?134616192 >>>> edi ? ? ? ? ? ?0xc5528d00 ? ? ? -984445696 >>>> eip ? ? ? ? ? ?0xc01a1ac1 ? ? ? 0xc01a1ac1 >>>> eflags ? ? ? ? 0x286 ? ?[ PF SF IF ] >>>> cs ? ? ? ? ? ? 0x60 ? ? 96 >>>> ss ? ? ? ? ? ? 0x8061480 ? ? ? ?134616192 >>>> ds ? ? ? ? ? ? 0x7b ? ? 123 >>>> es ? ? ? ? ? ? 0x7b ? ? 123 >>>> fs ? ? ? ? ? ? 0x0 ? ? ?0 >>>> gs ? ? ? ? ? ? 0x0 ? ? ?0 >>>> (gdb) tfind >>>> Found trace frame 2, tracepoint 1 >>>> #0 ?0xc01a1ac1 in vfs_readdir (file=0xc5528300, filler=0xc01a19e0 >>>> , >>>> ? buf=0xc6c2df90) at /home/teawater/kernel/linux-2.6/fs/readdir.c:23 >>>> 23 ? ? ?in /home/teawater/kernel/linux-2.6/fs/readdir.c >>>> (gdb) >>>> Found trace frame 3, tracepoint 1 >>>> 0xc01a1ac1 ? ? ?23 ? ? ?in /home/teawater/kernel/linux-2.6/fs/readdir.c >>>> (gdb) >>>> Target failed to find requested trace frame. >>>> (gdb) quit >>>> A debugging session is active. >>>> >>>> ? ? ? Inferior 1 [Remote target] will be killed. >>>> >>>> Quit anyway? (y or n) y >>>> >>>> Thanks, >>>> Hui >>> > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/