Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Marc Khouzam <marc.khouzam@ericsson.com>
To: "'Michael Snyder'" <msnyder@vmware.com>,
	"'Hui Zhu'" <teawater@gmail.com>
Cc: "'gdb@sourceware.org'" <gdb@sourceware.org>
Subject: RE: Linux Kernel GDB tracepoint module demo release
Date: Mon, 16 Aug 2010 15:35:00 -0000	[thread overview]
Message-ID: <F7CE05678329534C957159168FA70DEC5716DF584F@EUSAACMS0703.eamcs.ericsson.se> (raw)
In-Reply-To: <4C6311E0.5070909@vmware.com>

 

> -----Original Message-----
> From: gdb-owner@sourceware.org 
> [mailto:gdb-owner@sourceware.org] On Behalf Of Michael Snyder
> Sent: Wednesday, August 11, 2010 5:11 PM
> To: Hui Zhu
> Cc: gdb@sourceware.org; linux-kernel@vger.kernel.org
> Subject: Re: Linux Kernel GDB tracepoint module demo release
> 
> 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.

You missed a great Tracing mini-summit at LinuxCon last Monday:
http://lttng.org/tracingwiki/index.php/TracingMiniSummit2010

We discussed the different tracing technologies and talked about
Kernel vs User space.

So, yes, LTTng provides highly efficient _static_ tracing for the kernel.
The LTTng tracepoints are already in the kernel. http://lttng.org/
There is also a new User Space Tracer (UST) provided by LTTng.
http://lttng.org/ust

There is also Kprobes, which are dynamic tracepoints for the Kernel.
They seem very similar to GDB Tracepoints actually.
http://sourceware.org/systemtap/kprobes/

Stan gave a great presentation about GDB Tracepoints and some upcoming work.

And I spoke about Eclipse's support for GDB Tracepoints and for LTTng.

I think having access to GDB Tracepoints for the kernel may be very nice.
I imagine a user tracing both kernel and user space at the same time, using
the same interface (preferably Eclipse :-))

Interesting work Hui!

Marc



> 
> 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 
> <http://gnu.org/licenses/gpl.html>
> > 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:
> > <http://www.gnu.org/software/gdb/bugs/>...
> > 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 <filldir64>,
> >     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 <vfs_readdir+1>
> > 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 <vfs_readdir+1>
> > 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 <filldir>,
> >     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
> 
> 


      parent reply	other threads:[~2010-08-16 15:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-11 16:35 Hui Zhu
2010-08-11 19:04 ` Thiago Jung Bauermann
2010-08-11 19:07   ` Michael Snyder
2010-08-12  1:36     ` Hui Zhu
2010-08-11 21:11 ` Michael Snyder
2010-08-12  1:37   ` Hui Zhu
2010-08-12 17:14     ` Michael Snyder
2010-08-15  6:33       ` Hui Zhu
2010-08-16 15:35   ` Marc Khouzam [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F7CE05678329534C957159168FA70DEC5716DF584F@EUSAACMS0703.eamcs.ericsson.se \
    --to=marc.khouzam@ericsson.com \
    --cc=gdb@sourceware.org \
    --cc=msnyder@vmware.com \
    --cc=teawater@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox