This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Linux Kernel GDB tracepoint module 2010-8-30 release
- From: Hui Zhu <teawater at gmail dot com>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: Steven <mqyoung at gmail dot com>, "gdb at sourceware dot org" <gdb at sourceware dot org>, linux-kernel at vger dot kernel dot org, Michael Snyder <msnyder at vmware dot com>, Marc Khouzam <marc dot khouzam at ericsson dot com>, Thiago Jung Bauermann <thiago dot bauermann at gmail dot com>
- Date: Sun, 5 Sep 2010 00:34:22 +0800
- Subject: Re: Linux Kernel GDB tracepoint module 2010-8-30 release
- References: <AANLkTimjO7sBzR55XkPB7dmZvxXqc8PS4UDsgptXVt90@mail.gmail.com> <1283504768.2100.43.camel@steven> <y0md3suzzuj.fsf@fche.csb>
Hi Frank,
I try systemtrap but got some error:
On Fri, Sep 3, 2010 at 22:05, Frank Ch. Eigler <fche@redhat.com> wrote:
>
> Steven <mqyoung@gmail.com> writes:
>
>> [...]
>> ? ? ? ? (gdb) trace vfs_readdir
>> ? ? ? ? Tracepoint 3 at 0xc1175690: file fs/readdir.c, line 23.
>> ? ? ? ? (gdb) actions
>> ? ? ? ? Enter actions for tracepoint 3, one per line.
>> ? ? ? ? End with a line saying just "end".
>> ? ? ? ? > collect jiffies_64
>> ? ? ? ? > collect *file
>> ? ? ? ? > end
>
> By the way, the systemtap equivalent would be:
>
> #! /usr/bin/stap -g
> probe kernel.function("vfs_readdir") {
> ? ? ?println(%{ jiffies_64 %})
> ? ? ?println($file$)
> }
parse error: expected literal string or number
saw: embedded-code at ./1.sh:3:14
source: println(%{ jiffies_64 %})
^
parse error: expected statement
saw: ./1.sh EOF
2 parse error(s).
Pass 1: parse failed. Try again with another '--vp 1' option.
>
>
>> 2) I can not collect local variable, despite I rebuild the kernel with
>> -O0 optimization option. what is the problem? Many thanks
>> ? ? ? ? -------------------------------------------------------------------
>> ? ? ? ? (gdb) trace fs/readdir.c:29
>> ? ? ? ? Tracepoint 2 at 0xc11756ca: file fs/readdir.c, line 29.
>> ? ? ? ? (gdb) actions
>> ? ? ? ? Enter actions for tracepoint 2, one per line.
>> ? ? ? ? End with a line saying just "end".
>> ? ? ? ? > collect res
>> ? ? ? ? > end
>
>
> #! /usr/bin/stap
> probe kernel.statement("*@fs/readdir.c:29") {
> ? ? ?println($res)
> }
>
semantic error: not accessible at this address: identifier '$res' at ./1.sh:3:14
source: println($res)
^
Pass 2: analysis failed. Try again with another '--vp 01' option.
[1]+ Done gedit 1.sh
Could you help me with it?
Thanks,
Hui