gdb/
* gdb_proc_service.h (psaddr_t): Fix type. * linux-thread-db.c (thread_db_info.td_thr_tls_get_addr_p): Fix signature to match glibc. (thread_db_get_thread_local_address): Use psaddr_t for type of address to match parameter of td_thr_tls_get_addr_p. Cast through psaddr_t instead of (void*) to match parameter of td_thr_tls_get_addr_p. gdbserver/ * gdb_proc_service.h (psaddr_t): Fix type. * thread-db.c (thread_db_info.td_thr_tls_get_addr_p): Fix signature to match glibc.
This commit is contained in:
parent
42853c79aa
commit
00f515dab6
6 changed files with 27 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
|||
2009-12-18 Doug Evans <dje@google.com>
|
||||
|
||||
* gdb_proc_service.h (psaddr_t): Fix type.
|
||||
* linux-thread-db.c (thread_db_info.td_thr_tls_get_addr_p): Fix
|
||||
signature to match glibc.
|
||||
(thread_db_get_thread_local_address): Use psaddr_t for type of
|
||||
address to match parameter of td_thr_tls_get_addr_p.
|
||||
Cast through psaddr_t instead of (void*) to match parameter of
|
||||
td_thr_tls_get_addr_p.
|
||||
|
||||
2009-12-17 Stan Shebs <stan@codesourcery.com>
|
||||
|
||||
* breakpoint.c (bpstat_check_location): Check for tracepoints.
|
||||
|
|
|
@ -47,7 +47,7 @@ typedef unsigned int lwpid_t;
|
|||
#endif
|
||||
|
||||
#ifndef HAVE_PSADDR_T
|
||||
typedef unsigned long psaddr_t;
|
||||
typedef void *psaddr_t;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_PRGREGSET_T
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2009-12-18 Doug Evans <dje@google.com>
|
||||
|
||||
* gdb_proc_service.h (psaddr_t): Fix type.
|
||||
* thread-db.c (thread_db_info.td_thr_tls_get_addr_p): Fix
|
||||
signature to match glibc.
|
||||
|
||||
2009-12-16 Doug Evans <dje@google.com>
|
||||
|
||||
* linux-low.c (linux_read_memory): Fix argument to read.
|
||||
|
|
|
@ -54,7 +54,7 @@ typedef unsigned int lwpid_t;
|
|||
#endif
|
||||
|
||||
#ifndef HAVE_PSADDR_T
|
||||
typedef unsigned long psaddr_t;
|
||||
typedef void *psaddr_t;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_PRGREGSET_T
|
||||
|
|
|
@ -71,8 +71,8 @@ struct thread_db
|
|||
sigset_t *ti_sigmask_p,
|
||||
unsigned int ti_user_flags);
|
||||
td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
|
||||
void *map_address,
|
||||
size_t offset, void **address);
|
||||
psaddr_t map_address,
|
||||
size_t offset, psaddr_t *address);
|
||||
const char ** (*td_symbol_list_p) (void);
|
||||
};
|
||||
|
||||
|
|
|
@ -153,8 +153,8 @@ struct thread_db_info
|
|||
int event);
|
||||
|
||||
td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
|
||||
void *map_address,
|
||||
size_t offset, void **address);
|
||||
psaddr_t map_address,
|
||||
size_t offset, psaddr_t *address);
|
||||
};
|
||||
|
||||
/* List of known processes using thread_db, and the required
|
||||
|
@ -1530,7 +1530,7 @@ thread_db_get_thread_local_address (struct target_ops *ops,
|
|||
if (thread_info != NULL && thread_info->private != NULL)
|
||||
{
|
||||
td_err_e err;
|
||||
void *address;
|
||||
psaddr_t address;
|
||||
struct thread_db_info *info;
|
||||
|
||||
info = get_thread_db_info (GET_PID (ptid));
|
||||
|
@ -1544,8 +1544,11 @@ thread_db_get_thread_local_address (struct target_ops *ops,
|
|||
gdb_assert (lm != 0);
|
||||
|
||||
/* Finally, get the address of the variable. */
|
||||
/* Note the cast through uintptr_t: this interface only works if
|
||||
a target address fits in a psaddr_t, which is a host pointer.
|
||||
So a 32-bit debugger can not access 64-bit TLS through this. */
|
||||
err = info->td_thr_tls_get_addr_p (&thread_info->private->th,
|
||||
(void *)(size_t) lm,
|
||||
(psaddr_t)(uintptr_t) lm,
|
||||
offset, &address);
|
||||
|
||||
#ifdef THREAD_DB_HAS_TD_NOTALLOC
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue