[PATCH 3/4] perf symbols: Preserve symbol scope when parsing /proc/kallsyms

From: Anton Blanchard
Date: Wed Aug 24 2011 - 02:59:16 EST


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.

Signed-off-by: Anton Blanchard <anton@xxxxxxxxx>
---

Index: linux-2.6-tip/tools/perf/util/symbol.c
===================================================================
--- linux-2.6-tip.orig/tools/perf/util/symbol.c 2011-08-24 13:12:00.873072535 +1000
+++ linux-2.6-tip/tools/perf/util/symbol.c 2011-08-24 14:19:10.975819103 +1000
@@ -76,11 +76,13 @@ static void dso__set_sorted_by_name(stru

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;
}
@@ -465,7 +467,7 @@ int kallsyms__parse(const char *filename
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;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/