linux-user: fix multi-threaded /proc/self/maps
When reading our faked /proc/self/maps from a secondary thread, we get an invalid stack entry. This is because ts->stack_base is not initialized in non-primary threads. However, ts->info is, and the stack layout information we're looking for is there too. So let's use that one instead! Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
229d3376a3
commit
1bdd7c7ea8
@ -4962,8 +4962,8 @@ static int open_self_maps(void *cpu_env, int fd)
|
||||
#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
|
||||
dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
|
||||
(unsigned long long)ts->info->stack_limit,
|
||||
(unsigned long long)(ts->stack_base + (TARGET_PAGE_SIZE - 1))
|
||||
& TARGET_PAGE_MASK,
|
||||
(unsigned long long)(ts->info->start_stack +
|
||||
(TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
|
||||
(unsigned long long)0);
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user