Re: [PATCH v20] tracing: Fix kconfig warning due to a typo

From: Masami Hiramatsu
Date: Wed May 09 2012 - 01:55:25 EST


(2012/05/08 22:17), Peter Zijlstra wrote:
> On Tue, 2012-05-08 at 08:48 -0400, Steven Rostedt wrote:
>> On Tue, 2012-05-08 at 13:29 +0200, Peter Zijlstra wrote:
>>> On Tue, 2012-05-08 at 16:41 +0530, Srikar Dronamraju wrote:
>>>> + p:uprobes/p_zsh_0x46420 /bin/zsh:0x00046420 arg1=%ip arg2=%ax
>>>
>>> can you also do things like:
>>>
>>> p:uprobes/ponies /bin/zsh:foo arg1=bar
>>>
>>> when bar is either a function argument of foo (or an otherwise live
>>> variable at the probe point)?
>>>
>>> Only sampling register content is somewhat limiting, you might want to
>>> have %ax[5] + 24 for example, or a pure memory deref -- and the dwarves
>>> know where it all lives.
>>
>> But this is for the raw entry into the kernel. The kernel wont know the
>> variable name. Although perf could do that parsing for you.
>
> Ah, ok. Yes I meant for perf to do this, I overlooked it was the kernel
> input.

Right, perf-probe can provide that interface, if we can find debuginfo.

>> That said, the %ax[5] + 24 could be done in kernel, and that would be
>> useful. Does kprobes handle that?
>
> In general something like: %mr + %c * %cr + %cr would be most useful I
> think (%m - memory address, %r - register, %c - constant). Although
> maybe it needs segment registers too, dunno. Also no idea if this covers
> the addressing scope of all archs.

Would you mean SIB + displacement addressing? :)

Currently, kprobe tracer just accept [[%mr + %c] + %c] ...,
because it's a basic functionality for accessing members of
a data structure.

I see that this is not enough for the person who want to debug
kernel in machine code level.
Now I'm considering that it may be better to re-implement
internal argument parser/fetcher for supporting those kind
of memory addressing.

Thank you,


--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/