From e63c0b7c2e1e0823c80fa6ae75cf4ffc54c0a44e Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Wed, 14 Jun 2023 14:25:01 -0700 Subject: [PATCH] libsysprof-analyze: fix descendants of process symbols --- src/libsysprof-analyze/sysprof-descendants-model.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libsysprof-analyze/sysprof-descendants-model.c b/src/libsysprof-analyze/sysprof-descendants-model.c index 025a2ed3..6ca04faf 100644 --- a/src/libsysprof-analyze/sysprof-descendants-model.c +++ b/src/libsysprof-analyze/sysprof-descendants-model.c @@ -173,9 +173,12 @@ sysprof_descendants_model_add_traceable (SysprofDescendantsModel *self, g_assert (SYSPROF_IS_SYMBOL (from_symbol)); stack_depth = MIN (MAX_STACK_DEPTH, sysprof_document_traceable_get_stack_depth (traceable)); - symbols = g_alloca (sizeof (SysprofSymbol *) * stack_depth); + symbols = g_alloca (sizeof (SysprofSymbol *) * (stack_depth + 1)); n_symbols = sysprof_document_symbolize_traceable (document, traceable, symbols, stack_depth, &final_context); + if (sysprof_symbol_get_kind (from_symbol) == SYSPROF_SYMBOL_KIND_PROCESS) + symbols[n_symbols++] = from_symbol; + for (guint i = n_symbols; i > 0; i--) { SysprofSymbol *symbol = symbols[i-1];