gdbserver: no point in hiding the regcache type nowadays
The regcache used to be hidden inside inferiors.c, but since the tracepoints support that it's a first class object. This also fixes a few implicit pointer conversion errors in C++ mode, caused by a few places missing the explicit cast. gdb/gdbserver/ChangeLog: 2015-08-06 Pedro Alves <palves@redhat.com> * gdbthread.h (struct regcache): Forward declare. (struct thread_info) <regcache_data>: Now a struct regcache pointer. * inferiors.c (inferior_regcache_data) (set_inferior_regcache_data): Now work with struct regcache pointers. * inferiors.h (struct regcache): Forward declare. (inferior_regcache_data, set_inferior_regcache_data): Now work with struct regcache pointers. * regcache.c (get_thread_regcache, regcache_invalidate_thread) (free_register_cache_thread): Remove struct regcache pointer casts.
This commit is contained in:
parent
ca0a5f0bd3
commit
a44892be35
|
@ -1,3 +1,18 @@
|
||||||
|
2015-08-06 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* gdbthread.h (struct regcache): Forward declare.
|
||||||
|
(struct thread_info) <regcache_data>: Now a struct regcache
|
||||||
|
pointer.
|
||||||
|
* inferiors.c (inferior_regcache_data)
|
||||||
|
(set_inferior_regcache_data): Now work with struct regcache
|
||||||
|
pointers.
|
||||||
|
* inferiors.h (struct regcache): Forward declare.
|
||||||
|
(inferior_regcache_data, set_inferior_regcache_data): Now work
|
||||||
|
with struct regcache pointers.
|
||||||
|
* regcache.c (get_thread_regcache, regcache_invalidate_thread)
|
||||||
|
(free_register_cache_thread): Remove struct regcache pointer
|
||||||
|
casts.
|
||||||
|
|
||||||
2015-08-06 Pedro Alves <palves@redhat.com>
|
2015-08-06 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* server.c (captured_main): On error, print the exception message
|
* server.c (captured_main): On error, print the exception message
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "inferiors.h"
|
#include "inferiors.h"
|
||||||
|
|
||||||
struct btrace_target_info;
|
struct btrace_target_info;
|
||||||
|
struct regcache;
|
||||||
|
|
||||||
struct thread_info
|
struct thread_info
|
||||||
{
|
{
|
||||||
|
@ -30,7 +31,7 @@ struct thread_info
|
||||||
struct inferior_list_entry entry;
|
struct inferior_list_entry entry;
|
||||||
|
|
||||||
void *target_data;
|
void *target_data;
|
||||||
void *regcache_data;
|
struct regcache *regcache_data;
|
||||||
|
|
||||||
/* The last resume GDB requested on this thread. */
|
/* The last resume GDB requested on this thread. */
|
||||||
enum resume_kind last_resume_kind;
|
enum resume_kind last_resume_kind;
|
||||||
|
|
|
@ -230,14 +230,14 @@ set_inferior_target_data (struct thread_info *inferior, void *data)
|
||||||
inferior->target_data = data;
|
inferior->target_data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *
|
struct regcache *
|
||||||
inferior_regcache_data (struct thread_info *inferior)
|
inferior_regcache_data (struct thread_info *inferior)
|
||||||
{
|
{
|
||||||
return inferior->regcache_data;
|
return inferior->regcache_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
set_inferior_regcache_data (struct thread_info *inferior, void *data)
|
set_inferior_regcache_data (struct thread_info *inferior, struct regcache *data)
|
||||||
{
|
{
|
||||||
inferior->regcache_data = data;
|
inferior->regcache_data = data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ struct inferior_list_entry
|
||||||
};
|
};
|
||||||
|
|
||||||
struct thread_info;
|
struct thread_info;
|
||||||
|
struct regcache;
|
||||||
struct target_desc;
|
struct target_desc;
|
||||||
struct sym_cache;
|
struct sym_cache;
|
||||||
struct breakpoint;
|
struct breakpoint;
|
||||||
|
@ -147,7 +148,7 @@ struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
|
||||||
|
|
||||||
void *inferior_target_data (struct thread_info *);
|
void *inferior_target_data (struct thread_info *);
|
||||||
void set_inferior_target_data (struct thread_info *, void *);
|
void set_inferior_target_data (struct thread_info *, void *);
|
||||||
void *inferior_regcache_data (struct thread_info *);
|
struct regcache *inferior_regcache_data (struct thread_info *);
|
||||||
void set_inferior_regcache_data (struct thread_info *, void *);
|
void set_inferior_regcache_data (struct thread_info *, struct regcache *);
|
||||||
|
|
||||||
#endif /* INFERIORS_H */
|
#endif /* INFERIORS_H */
|
||||||
|
|
|
@ -28,7 +28,7 @@ get_thread_regcache (struct thread_info *thread, int fetch)
|
||||||
{
|
{
|
||||||
struct regcache *regcache;
|
struct regcache *regcache;
|
||||||
|
|
||||||
regcache = (struct regcache *) inferior_regcache_data (thread);
|
regcache = inferior_regcache_data (thread);
|
||||||
|
|
||||||
/* Threads' regcaches are created lazily, because biarch targets add
|
/* Threads' regcaches are created lazily, because biarch targets add
|
||||||
the main thread/lwp before seeing it stop for the first time, and
|
the main thread/lwp before seeing it stop for the first time, and
|
||||||
|
@ -76,7 +76,7 @@ regcache_invalidate_thread (struct thread_info *thread)
|
||||||
{
|
{
|
||||||
struct regcache *regcache;
|
struct regcache *regcache;
|
||||||
|
|
||||||
regcache = (struct regcache *) inferior_regcache_data (thread);
|
regcache = inferior_regcache_data (thread);
|
||||||
|
|
||||||
if (regcache == NULL)
|
if (regcache == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -277,8 +277,7 @@ find_register_by_number (const struct target_desc *tdesc, int n)
|
||||||
static void
|
static void
|
||||||
free_register_cache_thread (struct thread_info *thread)
|
free_register_cache_thread (struct thread_info *thread)
|
||||||
{
|
{
|
||||||
struct regcache *regcache
|
struct regcache *regcache = inferior_regcache_data (thread);
|
||||||
= (struct regcache *) inferior_regcache_data (thread);
|
|
||||||
|
|
||||||
if (regcache != NULL)
|
if (regcache != NULL)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue