lkml.org 
[lkml]   [2010]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/probes] perf probe: Fix bugs in line range finder
    Commit-ID:  3cb8bc6ac95ff86147d11ee1d36d18e1ddf3637c
    Gitweb: http://git.kernel.org/tip/3cb8bc6ac95ff86147d11ee1d36d18e1ddf3637c
    Author: Masami Hiramatsu <mhiramat@redhat.com>
    AuthorDate: Thu, 25 Feb 2010 08:35:27 -0500
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Thu, 25 Feb 2010 17:49:28 +0100

    perf probe: Fix bugs in line range finder

    Fix find_line_range_by_line() to init line_list and remove
    misconseptional found marking which should be done when
    real lines are found (if there is no lines probe-able,
    find_line_range() should return 0).

    Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
    Cc: systemtap <systemtap@sources.redhat.com>
    Cc: DLE <dle-develop@lists.sourceforge.net>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: K.Prasad <prasad@linux.vnet.ibm.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    LKML-Reference: <20100225133527.6725.52418.stgit@localhost6.localdomain6>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    ---
    tools/perf/util/probe-finder.c | 3 +--
    1 files changed, 1 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
    index 1b2124d..3e10dbe 100644
    --- a/tools/perf/util/probe-finder.c
    +++ b/tools/perf/util/probe-finder.c
    @@ -788,6 +788,7 @@ static void find_line_range_by_line(struct line_finder *lf)
    Dwarf_Addr addr;
    int ret;

    + INIT_LIST_HEAD(&lf->lr->line_list);
    ret = dwarf_srclines(lf->cu_die, &lines, &cnt, &__dw_error);
    DIE_IF(ret != DW_DLV_OK);

    @@ -848,8 +849,6 @@ static int linefunc_callback(struct die_link *dlink, void *data)
    lr->start = lf->lno_s;
    lr->end = lf->lno_e;
    find_line_range_by_line(lf);
    - /* If we find a target function, this should be end. */
    - lf->found = 1;
    return 1;
    }
    return 0;

    \
     
     \ /
      Last update: 2010-02-25 20:35    [W:0.024 / U:34.480 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site