From 4d92cf3424a926f481db6a2bb0f3bc081577c381 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 17 Jul 2023 17:41:15 -0700 Subject: [PATCH] libsysprof-profile: only bundle ELF symbols The rest can be decoded already using content we have in our syscap. --- src/libsysprof-profile/sysprof-symbols-bundle.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libsysprof-profile/sysprof-symbols-bundle.c b/src/libsysprof-profile/sysprof-symbols-bundle.c index 6a5fa814..2602f514 100644 --- a/src/libsysprof-profile/sysprof-symbols-bundle.c +++ b/src/libsysprof-profile/sysprof-symbols-bundle.c @@ -58,6 +58,7 @@ sysprof_symbols_bundle_augment_fiber (gpointer user_data) G_TYPE_BYTES); g_autoptr(SysprofDocumentLoader) loader = NULL; + g_autoptr(SysprofSymbolizer) elf = NULL; g_autoptr(SysprofDocument) document = NULL; g_autoptr(GBytes) bytes = NULL; SysprofRecording *recording = user_data; @@ -74,6 +75,12 @@ sysprof_symbols_bundle_augment_fiber (gpointer user_data) return dex_future_new_for_error (g_steal_pointer (&error)); g_assert (SYSPROF_IS_DOCUMENT_LOADER (loader)); + /* Only symbolize ELF symbols as the rest can be symbolized + * by the application without having to resort to decoding. + */ + elf = sysprof_elf_symbolizer_new (); + sysprof_document_loader_set_symbolizer (loader, elf); + if (!(document = dex_await_object (dex_async_pair_new (loader, &load_info), &error))) return dex_future_new_for_error (g_steal_pointer (&error)); g_assert (SYSPROF_IS_DOCUMENT (document));