diff options
author | Masami Hiramatsu <mhiramat@redhat.com> | 2009-10-27 16:42:53 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-10-29 03:47:48 -0400 |
commit | 8030c5f5a57e018fcdeb1f395d7adc123b48ced6 (patch) | |
tree | cce77d833fbd79ef3651ce6018b93ee9247084df /tools/perf/util | |
parent | dd004c475cd15a5749b04b0283d41ffdfa57d658 (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')
-rw-r--r-- | tools/perf/util/probe-finder.c | 4 |
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) { |