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 --- 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/