Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 14 Sep 2009 23:09:35 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH tracing/kprobes 0/7] tracing/kprobes: kprobe-based event tracer update and perf support |
| |
On Mon, Sep 14, 2009 at 05:10:33PM -0400, Masami Hiramatsu wrote: > Frederic Weisbecker wrote: >> On Mon, Sep 14, 2009 at 01:16:13PM -0400, Masami Hiramatsu wrote: >>> Frederic Weisbecker wrote: >>>> On Fri, Sep 11, 2009 at 12:03:30PM -0400, Masami Hiramatsu wrote: >>>>> Frederic Weisbecker wrote: >>>>>> May be another step in the todo-list that would be nice: define the format >>>>>> for a type. Like it's done from ftrace events. >>>>> >>>>> Thanks! >>>>> >>>>> BTW, I'm not sure what the type means. Each event already has its own >>>>> event ID and event_call. Could you tell me which part of ftrace I should >>>>> refer to ? >>>>> >>>> >>>> >>>> Actually I meant the format for a field. >>>> Say you define filename=arg1, it would be nice to have >>>> >>>> print "%s", filename >>>> >>>> in the format file. >>> >>> Ah, indeed. It is better to support 'type' casting for each argument. >>> I think type casting can be done as below syntax. >>> >>> NAME=ARG:TYPE >>> e.g. >>> jiffies64=@jiffies64:u64 >>> message=%ax:str >>> >> >> >> Yeah looks good! >> >> >> >>>> Hmm, now that I think about it, we can't dereference an array...for now :-) >>> >>> :-) >>> BTW, currently, an entry of the array can be shown, e.g. +10(sa). >>> Hmm, for more complex dereference(e.g. accessing a->b[a->c]), it might need >>> another dereferencing syntax(e.g. "sa[16][sa[8]]"), or >>> just allow to use braces(e.g. "+(+8(sa))(+16(sa))"). >> >> >> Well, that may be too much complexity. >> I guess if we want multi level dereference, say you want a->b->c >> it should be sufficient to probe the point where b->c gets it's >> value (if any). >> >> But it would be nice to fetch a range: sa[begin:end] >> Or at least just giving the length of the range. > > Hmm, I think it is better to treat the range as a type, because > we don't know how to express each entry without the type. > > NAME=ARG:TYPE[LEN] > e.g. > regs=sa:u64[16] >
Yeah indeed, and that fits well in the NAME=ARG:TYPE logic that you have suggested.
| ![\](/images/icornerr.gif) |