diff options
Diffstat (limited to 'tools/perf/util/thread.c')
-rw-r--r-- | tools/perf/util/thread.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c index a9df7f2c6dc9..2b7b2d91c016 100644 --- a/tools/perf/util/thread.c +++ b/tools/perf/util/thread.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include "util.h" | 7 | #include "util.h" |
8 | #include "debug.h" | 8 | #include "debug.h" |
9 | #include "comm.h" | 9 | #include "comm.h" |
10 | #include "unwind.h" | ||
10 | 11 | ||
11 | int thread__init_map_groups(struct thread *thread, struct machine *machine) | 12 | int thread__init_map_groups(struct thread *thread, struct machine *machine) |
12 | { | 13 | { |
@@ -37,6 +38,9 @@ struct thread *thread__new(pid_t pid, pid_t tid) | |||
37 | thread->cpu = -1; | 38 | thread->cpu = -1; |
38 | INIT_LIST_HEAD(&thread->comm_list); | 39 | INIT_LIST_HEAD(&thread->comm_list); |
39 | 40 | ||
41 | if (unwind__prepare_access(thread) < 0) | ||
42 | goto err_thread; | ||
43 | |||
40 | comm_str = malloc(32); | 44 | comm_str = malloc(32); |
41 | if (!comm_str) | 45 | if (!comm_str) |
42 | goto err_thread; | 46 | goto err_thread; |
@@ -48,6 +52,7 @@ struct thread *thread__new(pid_t pid, pid_t tid) | |||
48 | goto err_thread; | 52 | goto err_thread; |
49 | 53 | ||
50 | list_add(&comm->list, &thread->comm_list); | 54 | list_add(&comm->list, &thread->comm_list); |
55 | |||
51 | } | 56 | } |
52 | 57 | ||
53 | return thread; | 58 | return thread; |
@@ -69,6 +74,7 @@ void thread__delete(struct thread *thread) | |||
69 | list_del(&comm->list); | 74 | list_del(&comm->list); |
70 | comm__free(comm); | 75 | comm__free(comm); |
71 | } | 76 | } |
77 | unwind__finish_access(thread); | ||
72 | 78 | ||
73 | free(thread); | 79 | free(thread); |
74 | } | 80 | } |