lkml.org 
[lkml]   [2011]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/12] perf symbols: Preserve symbol scope when parsing /proc/kallsyms
    Date
    From: Anton Blanchard <anton@samba.org>

    kallsyms__parse capitalises the symbol type, so every symbol is marked
    global. Remove this and fix symbol_type__is_a to handle both local and
    global symbols.

    Cc: Eric B Munson <emunson@mgebm.net>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20110824065243.077125989@samba.org
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/symbol.c | 6 ++++--
    1 files changed, 4 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
    index f119e85..0d94ddb 100644
    --- a/tools/perf/util/symbol.c
    +++ b/tools/perf/util/symbol.c
    @@ -74,11 +74,13 @@ static void dso__set_sorted_by_name(struct dso *dso, enum map_type type)

    bool symbol_type__is_a(char symbol_type, enum map_type map_type)
    {
    + symbol_type = toupper(symbol_type);
    +
    switch (map_type) {
    case MAP__FUNCTION:
    return symbol_type == 'T' || symbol_type == 'W';
    case MAP__VARIABLE:
    - return symbol_type == 'D' || symbol_type == 'd';
    + return symbol_type == 'D';
    default:
    return false;
    }
    @@ -463,7 +465,7 @@ int kallsyms__parse(const char *filename, void *arg,
    if (len + 2 >= line_len)
    continue;

    - symbol_type = toupper(line[len]);
    + symbol_type = line[len];
    len += 2;
    symbol_name = line + len;
    len = line_len - len;
    --
    1.6.2.5


    \
     
     \ /
      Last update: 2011-09-23 22:29    [W:0.028 / U:1.100 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site