diff --git a/src/libsysprof-analyze/sysprof-document-symbols.c b/src/libsysprof-analyze/sysprof-document-symbols.c index c008990d..6fddfedb 100644 --- a/src/libsysprof-analyze/sysprof-document-symbols.c +++ b/src/libsysprof-analyze/sysprof-document-symbols.c @@ -91,10 +91,7 @@ sysprof_document_symbols_add_traceable (SysprofDocumentSymbols *self, SysprofAddress address = addresses[i]; SysprofAddressContext context; - if (sysprof_address_is_context_switch (address, &context)) - g_print ("%d: %s\n", i, sysprof_address_context_to_string (context)); - else - g_print ("%d: %p\n", i, (gpointer)address); + /* TODO: */ } } diff --git a/src/libsysprof-analyze/tests/test-symbolize.c b/src/libsysprof-analyze/tests/test-symbolize.c index 62731995..6a8ef4e6 100644 --- a/src/libsysprof-analyze/tests/test-symbolize.c +++ b/src/libsysprof-analyze/tests/test-symbolize.c @@ -11,7 +11,9 @@ symbolize_cb (GObject *object, { SysprofDocument *document = (SysprofDocument *)object; g_autoptr(SysprofDocumentSymbols) symbols = NULL; + g_autoptr(GListModel) traceables = NULL; g_autoptr(GError) error = NULL; + guint n_items; g_assert (SYSPROF_IS_DOCUMENT (document)); g_assert (G_IS_ASYNC_RESULT (result)); @@ -19,6 +21,33 @@ symbolize_cb (GObject *object, if (!(symbols = sysprof_document_symbolize_finish (document, result, &error))) g_error ("Failed to symbolize: %s", error->message); + traceables = sysprof_document_list_traceables (document); + n_items = g_list_model_get_n_items (traceables); + + for (guint i = 0; i < n_items; i++) + { + g_autoptr(SysprofDocumentTraceable) traceable = g_list_model_get_item (traceables, i); + guint depth; + + g_assert (traceable != NULL); + g_assert (SYSPROF_IS_DOCUMENT_TRACEABLE (traceable)); + + depth = sysprof_document_traceable_get_stack_depth (traceable); + + g_print ("%s depth=%u\n", G_OBJECT_TYPE_NAME (traceable), depth); + + for (guint j = 0; j < depth; j++) + { + SysprofAddress address = sysprof_document_traceable_get_stack_address (traceable, j); + + g_print (" %02d: %p\n", j, GSIZE_TO_POINTER (address)); + + /* TODO: get symbol name from document symbols */ + } + + g_print (" ================\n"); + } + g_print ("Document symbolized\n"); g_main_loop_quit (main_loop);