|
@@ -955,6 +955,7 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event
|
|
|
u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
|
|
|
struct thread *thread;
|
|
|
struct map *map;
|
|
|
+ enum map_type type;
|
|
|
int ret = 0;
|
|
|
|
|
|
if (dump_trace)
|
|
@@ -971,10 +972,17 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event
|
|
|
thread = machine__findnew_thread(machine, event->mmap.pid);
|
|
|
if (thread == NULL)
|
|
|
goto out_problem;
|
|
|
+
|
|
|
+ if (event->header.misc & PERF_RECORD_MISC_MMAP_DATA)
|
|
|
+ type = MAP__VARIABLE;
|
|
|
+ else
|
|
|
+ type = MAP__FUNCTION;
|
|
|
+
|
|
|
map = map__new(&machine->user_dsos, event->mmap.start,
|
|
|
event->mmap.len, event->mmap.pgoff,
|
|
|
event->mmap.pid, event->mmap.filename,
|
|
|
- MAP__FUNCTION);
|
|
|
+ type);
|
|
|
+
|
|
|
if (map == NULL)
|
|
|
goto out_problem;
|
|
|
|