diff --git a/librarytrader/library.py b/librarytrader/library.py index 472331666931530867ba5242e6f29b83791c3014..ff66a2ac0ac4b4acdae6e5332a0d86b3afbab763 100644 --- a/librarytrader/library.py +++ b/librarytrader/library.py @@ -152,6 +152,8 @@ class Library: self.parse_time = 0 self.total_disas_time = 0 + self.external_debug_file = None + if parse: self.parse_functions() @@ -912,7 +914,7 @@ class Library: if fd > 0: external_elf = ELFFile(os.fdopen(fd, 'rb')) symtab = external_elf.get_section_by_name('.symtab') - external_path = path + external_path = path.decode('utf-8') except (ELFError, OSError, FileNotFoundError) as e: logging.debug('debuginfod query failed: %s', e) @@ -920,7 +922,8 @@ class Library: return False elif external_path: logging.debug('Found external symtab for %s at %s', self.fullname, - external_path) + os.path.abspath(external_path)) + self.external_debug_file = os.path.abspath(external_path) sorted_ranges = sorted(self.ranges.items()) for _, symbol in self._get_function_symbols(symtab, prefix_local=True): diff --git a/librarytrader/librarystore.py b/librarytrader/librarystore.py index 95bb2496d29e049110f5f1dbe015bbfb27c0b575..f02805dca8b2c8d6252de91bfc7bf32a7387c402 100644 --- a/librarytrader/librarystore.py +++ b/librarytrader/librarystore.py @@ -795,6 +795,7 @@ class LibraryStore(BaseStore): lib_dict["version_descriptions"] = content.version_descriptions lib_dict["parse_time"] = content.parse_time lib_dict["total_disas_time"] = content.total_disas_time + lib_dict["external_debug_file"] = content.external_debug_file output[path] = lib_dict @@ -872,6 +873,7 @@ class LibraryStore(BaseStore): library.version_descriptions = content.get("version_descriptions", {}) library.parse_time = float(content.get("parse_time", 0)) library.total_disas_time = float(content.get("total_disas_time", 0)) + library.external_debug_file = content.get("external_debug_file", None) self._add_library(path, library) logging.debug('... done with %s entries', len(self))