96e9210fd6
Implicit void * -> function pointer conversion doesn't work in C++, so in C++, we need to cast the result of dlsym. This adds a few typedefs and macros that make this easy. GDBserver's version already had the CHK macro, so I added it to GDB too. Tested on x86_64 Fedora 20, native and gdbserver. gdb/gdbserver/ChangeLog: 2015-08-04 Pedro Alves <palves@redhat.com> * thread-db.c (struct thread_db): Use new typedefs. (try_thread_db_load_1): Define local TDB_DLSYM macro and use it in CHK calls. (disable_thread_event_reporting): Cast result of dlsym to destination function pointer type. (thread_db_mourn): Use td_ta_delete_ftype. gdb/ChangeLog: 2015-08-04 Pedro Alves <palves@redhat.com> * nat/gdb_thread_db.h (td_init_ftype, td_ta_new_ftype) (td_ta_map_lwp2thr_ftype, td_ta_thr_iter_ftype) (td_ta_event_addr_ftype, td_ta_set_event_ftype) (td_ta_clear_event_ftype, td_ta_event_getmsg_ftype) (td_thr_validate_ftype, td_thr_get_info_ftype) (td_thr_event_enable_ftype, td_thr_tls_get_addr_ftype) (td_thr_tlsbase_ftype, td_symbol_list_ftype, td_ta_delete_ftype): New typedefs. * linux-thread-db.c (struct thread_db_info): Use new typedefs. (try_thread_db_load_1): Define TDB_VERBOSE_DLSYM, TDB_DLSYM , CHK local macros and use them instead of verbose_dlsym and dlsym calls. |
||
---|---|---|
.. | ||
aarch64-linux-hw-point.c | ||
aarch64-linux-hw-point.h | ||
gdb_ptrace.h | ||
gdb_thread_db.h | ||
glibc_thread_db.h | ||
linux-btrace.c | ||
linux-btrace.h | ||
linux-namespaces.c | ||
linux-namespaces.h | ||
linux-nat.h | ||
linux-osdata.c | ||
linux-osdata.h | ||
linux-personality.c | ||
linux-personality.h | ||
linux-procfs.c | ||
linux-procfs.h | ||
linux-ptrace.c | ||
linux-ptrace.h | ||
linux-waitpid.c | ||
linux-waitpid.h | ||
mips-linux-watch.c | ||
mips-linux-watch.h | ||
ppc-linux.c | ||
ppc-linux.h | ||
x86-cpuid.h | ||
x86-dregs.c | ||
x86-dregs.h | ||
x86-gcc-cpuid.h | ||
x86-linux-dregs.c | ||
x86-linux-dregs.h | ||
x86-linux.c | ||
x86-linux.h |