|
@@ -2286,7 +2286,8 @@ static int append_inlines(struct callchain_cursor *cursor,
|
|
if (!symbol_conf.inline_name || !map || !sym)
|
|
if (!symbol_conf.inline_name || !map || !sym)
|
|
return ret;
|
|
return ret;
|
|
|
|
|
|
- addr = map__rip_2objdump(map, ip);
|
|
|
|
|
|
+ addr = map__map_ip(map, ip);
|
|
|
|
+ addr = map__rip_2objdump(map, addr);
|
|
|
|
|
|
inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr);
|
|
inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr);
|
|
if (!inline_node) {
|
|
if (!inline_node) {
|
|
@@ -2312,7 +2313,7 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
|
|
{
|
|
{
|
|
struct callchain_cursor *cursor = arg;
|
|
struct callchain_cursor *cursor = arg;
|
|
const char *srcline = NULL;
|
|
const char *srcline = NULL;
|
|
- u64 addr;
|
|
|
|
|
|
+ u64 addr = entry->ip;
|
|
|
|
|
|
if (symbol_conf.hide_unresolved && entry->sym == NULL)
|
|
if (symbol_conf.hide_unresolved && entry->sym == NULL)
|
|
return 0;
|
|
return 0;
|
|
@@ -2324,7 +2325,8 @@ static int unwind_entry(struct unwind_entry *entry, void *arg)
|
|
* Convert entry->ip from a virtual address to an offset in
|
|
* Convert entry->ip from a virtual address to an offset in
|
|
* its corresponding binary.
|
|
* its corresponding binary.
|
|
*/
|
|
*/
|
|
- addr = map__map_ip(entry->map, entry->ip);
|
|
|
|
|
|
+ if (entry->map)
|
|
|
|
+ addr = map__map_ip(entry->map, entry->ip);
|
|
|
|
|
|
srcline = callchain_srcline(entry->map, entry->sym, addr);
|
|
srcline = callchain_srcline(entry->map, entry->sym, addr);
|
|
return callchain_cursor_append(cursor, entry->ip,
|
|
return callchain_cursor_append(cursor, entry->ip,
|