perf symbols: we can now read separate debug-info files based on a build ID
[cascardo/linux.git] / tools / perf / util / symbol.c
index e7bf0c4..71bf711 100644 (file)
@@ -1406,6 +1406,7 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
        struct symsrc ss_[2];
        struct symsrc *syms_ss = NULL, *runtime_ss = NULL;
        bool kmod;
+       unsigned char build_id[BUILD_ID_SIZE];
 
        pthread_mutex_lock(&dso->lock);
 
@@ -1461,6 +1462,14 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
                dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE ||
                dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE_COMP;
 
+
+       /*
+        * Read the build id if possible. This is required for
+        * DSO_BINARY_TYPE__BUILDID_DEBUGINFO to work
+        */
+       if (filename__read_build_id(dso->name, build_id, BUILD_ID_SIZE) > 0)
+               dso__set_build_id(dso, build_id);
+
        /*
         * Iterate over candidate debug images.
         * Keep track of "interesting" ones (those which have a symtab, dynsym,