perf/probes: Improve probe point syntax of perf-probe
This changes probe point syntax of perf-probe as below <SRC>[:ABS_LN] [ARGS] or <FUNC>[+OFFS|%return][@SRC] [ARGS] And event name and event group name are automatically generated based on probe-symbol and offset as below. perfprobes/SYMBOL_OFFSET[_NUM] Where SYMBOL is the probing symbol and OFFSET is the byte offset from the symbol. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Jim Keniston <jkenisto@us.ibm.com> Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Cc: Christoph Hellwig <hch@infradead.org> Cc: Frank Ch. Eigler <fche@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jason Baron <jbaron@redhat.com> Cc: K.Prasad <prasad@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> LKML-Reference: <20091027204310.30545.84984.stgit@harusame> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:

committed by
Ingo Molnar

parent
46ab49267d
commit
253977b0d8
@@ -483,10 +483,20 @@ static void show_probepoint(Dwarf_Die sp_die, Dwarf_Signed offs,
|
||||
if (ret == DW_DLV_OK) {
|
||||
ret = snprintf(tmp, MAX_PROBE_BUFFER, "%s+%u", name,
|
||||
(unsigned int)offs);
|
||||
/* Copy the function name if possible */
|
||||
if (!pp->function) {
|
||||
pp->function = strdup(name);
|
||||
pp->offset = offs;
|
||||
}
|
||||
dwarf_dealloc(__dw_debug, name, DW_DLA_STRING);
|
||||
} else {
|
||||
/* This function has no name. */
|
||||
ret = snprintf(tmp, MAX_PROBE_BUFFER, "0x%llx", pf->addr);
|
||||
if (!pp->function) {
|
||||
/* TODO: Use _stext */
|
||||
pp->function = strdup("");
|
||||
pp->offset = (int)pf->addr;
|
||||
}
|
||||
}
|
||||
DIE_IF(ret < 0);
|
||||
DIE_IF(ret >= MAX_PROBE_BUFFER);
|
||||
|
Reference in New Issue
Block a user