|
@@ -621,14 +621,19 @@ enum match_result {
|
|
|
static enum match_result match_chain_srcline(struct callchain_cursor_node *node,
|
|
|
struct callchain_list *cnode)
|
|
|
{
|
|
|
- char *left = get_srcline(cnode->ms.map->dso,
|
|
|
+ char *left = NULL;
|
|
|
+ char *right = NULL;
|
|
|
+ enum match_result ret = MATCH_EQ;
|
|
|
+ int cmp;
|
|
|
+
|
|
|
+ if (cnode->ms.map)
|
|
|
+ left = get_srcline(cnode->ms.map->dso,
|
|
|
map__rip_2objdump(cnode->ms.map, cnode->ip),
|
|
|
cnode->ms.sym, true, false);
|
|
|
- char *right = get_srcline(node->map->dso,
|
|
|
+ if (node->map)
|
|
|
+ right = get_srcline(node->map->dso,
|
|
|
map__rip_2objdump(node->map, node->ip),
|
|
|
node->sym, true, false);
|
|
|
- enum match_result ret = MATCH_EQ;
|
|
|
- int cmp;
|
|
|
|
|
|
if (left && right)
|
|
|
cmp = strcmp(left, right);
|