aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/probe-finder.c
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@redhat.com>2009-10-27 16:42:53 -0400
committerIngo Molnar <mingo@elte.hu>2009-10-29 03:47:48 -0400
commit8030c5f5a57e018fcdeb1f395d7adc123b48ced6 (patch)
treecce77d833fbd79ef3651ce6018b93ee9247084df /tools/perf/util/probe-finder.c
parentdd004c475cd15a5749b04b0283d41ffdfa57d658 (diff)
perf/probes: Exit searching after finding target function
Exit searching after finding real (not-inlined) function, because there should be no same symbol in that CU. 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: <20091027204252.30545.19251.stgit@harusame> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/probe-finder.c')
-rw-r--r--tools/perf/util/probe-finder.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 54e707185308..b98d35ef7116 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -585,14 +585,14 @@ static int probefunc_callback(struct die_link *dlink, void *data)
585 DIE_IF(ret != DW_DLV_OK); 585 DIE_IF(ret != DW_DLV_OK);
586 pr_debug("inline definition offset %lld\n", 586 pr_debug("inline definition offset %lld\n",
587 pf->inl_offs); 587 pf->inl_offs);
588 return 0; 588 return 0; /* Continue to search */
589 } 589 }
590 /* Get probe address */ 590 /* Get probe address */
591 pf->addr = die_get_entrypc(dlink->die); 591 pf->addr = die_get_entrypc(dlink->die);
592 pf->addr += pp->offset; 592 pf->addr += pp->offset;
593 /* TODO: Check the address in this function */ 593 /* TODO: Check the address in this function */
594 show_probepoint(dlink->die, pp->offset, pf); 594 show_probepoint(dlink->die, pp->offset, pf);
595 /* Continue to search */ 595 return 1; /* Exit; no same symbol in this CU. */
596 } 596 }
597 } else if (tag == DW_TAG_inlined_subroutine && pf->inl_offs) { 597 } else if (tag == DW_TAG_inlined_subroutine && pf->inl_offs) {
598 if (die_get_abstract_origin(dlink->die) == pf->inl_offs) { 598 if (die_get_abstract_origin(dlink->die) == pf->inl_offs) {