From a4fe6445874e8deacad8283c7a98997334f7f8d2 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 5 Jun 2013 21:15:41 +0000 Subject: [PATCH] * linux-x86-low.c (ps_get_thread_area): Properly extend address to 64 bits in 64-cross-32 environment. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-x86-low.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 3ca7f1ee8e2..bc2d4149670 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2013-05-31 Doug Evans + + * linux-x86-low.c (ps_get_thread_area): Properly extend address to + 64 bits in 64-cross-32 environment. + 2013-05-03 Hafiz Abid Qadeer * tracepoint.c (cmd_qtinit): Call 'stop_tracing'. diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index 31657d3f07c..72a703b1d9d 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -196,7 +196,8 @@ ps_get_thread_area (const struct ps_prochandle *ph, (void *) (intptr_t) idx, (unsigned long) &desc) < 0) return PS_ERR; - *(int *)base = desc[1]; + /* Ensure we properly extend the value to 64-bits for x86_64. */ + *base = (void *) (uintptr_t) desc[1]; return PS_OK; } } -- 2.47.2