Index: profile.c =================================================================== --- profile.c (revision 437) +++ profile.c (working copy) @@ -593,8 +593,8 @@ ProfileFunc *caller = callers->pdata [i]; if (caller->node) { - if (caller->node->symbol) - name = caller->node->symbol; + if (caller->node->symbol && caller->node->symbol->name) + name = caller->node->symbol->name; else name = "???"; } @@ -630,8 +630,8 @@ unsigned int percent; ProfileDescendantTreeNode *child = children->pdata [i]; - if (child->symbol) { - name = child->symbol; + if (child->symbol && child->symbol->name) { + name = child->symbol->name; } else name = "???"; @@ -657,8 +657,8 @@ for (i = 0; i < functions->len; ++i) { const gchar *name; ProfileFunc *func = functions->pdata [i]; - if (func->node->symbol) - name = func->node->symbol; + if (func->node->symbol && func->node->symbol->name) + name = func->node->symbol->name; else name = "???"; fprintf (out, "%10d %10d %5.2f %% %s\n", @@ -676,8 +676,8 @@ for (i = 0; i < functions->len; ++i) { const gchar *name; ProfileFunc *func = functions->pdata [i]; - if (func->node->symbol) - name = func->node->symbol; + if (func->node->symbol && func->node->symbol->name) + name = func->node->symbol->name; else name = "???"; fprintf (out, "########################\n");