summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-08-06 17:29:01 +0100
committerPedro Alves <palves@redhat.com>2015-08-06 17:29:01 +0100
commita44892be35506471a53e5bc8c2def4ffccf451f9 (patch)
treeffa95b488c44731e8bdf756eedca458dc91e65bc
parentca0a5f0bd33d0aa17a5cf518e41e47ddfde486ad (diff)
downloadbinutils-gdb-a44892be35506471a53e5bc8c2def4ffccf451f9.tar.gz
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.
-rw-r--r--gdb/gdbserver/ChangeLog15
-rw-r--r--gdb/gdbserver/gdbthread.h3
-rw-r--r--gdb/gdbserver/inferiors.c4
-rw-r--r--gdb/gdbserver/inferiors.h5
-rw-r--r--gdb/gdbserver/regcache.c7
5 files changed, 25 insertions, 9 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 1c1bb5eba09..5f0841779fc 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,20 @@
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>
+
* server.c (captured_main): On error, print the exception message
to stderr, and if run_once is set, throw a quit.
diff --git a/gdb/gdbserver/gdbthread.h b/gdb/gdbserver/gdbthread.h
index b3e3e9dad7b..d6959f46e60 100644
--- a/gdb/gdbserver/gdbthread.h
+++ b/gdb/gdbserver/gdbthread.h
@@ -22,6 +22,7 @@
#include "inferiors.h"
struct btrace_target_info;
+struct regcache;
struct thread_info
{
@@ -30,7 +31,7 @@ struct thread_info
struct inferior_list_entry entry;
void *target_data;
- void *regcache_data;
+ struct regcache *regcache_data;
/* The last resume GDB requested on this thread. */
enum resume_kind last_resume_kind;
diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c
index 7c5a1e0eac5..d7ad347eeed 100644
--- a/gdb/gdbserver/inferiors.c
+++ b/gdb/gdbserver/inferiors.c
@@ -230,14 +230,14 @@ set_inferior_target_data (struct thread_info *inferior, void *data)
inferior->target_data = data;
}
-void *
+struct regcache *
inferior_regcache_data (struct thread_info *inferior)
{
return inferior->regcache_data;
}
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;
}
diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h
index 0569586fcfc..88ebbe373af 100644
--- a/gdb/gdbserver/inferiors.h
+++ b/gdb/gdbserver/inferiors.h
@@ -33,6 +33,7 @@ struct inferior_list_entry
};
struct thread_info;
+struct regcache;
struct target_desc;
struct sym_cache;
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 set_inferior_target_data (struct thread_info *, void *);
-void *inferior_regcache_data (struct thread_info *);
-void set_inferior_regcache_data (struct thread_info *, void *);
+struct regcache *inferior_regcache_data (struct thread_info *);
+void set_inferior_regcache_data (struct thread_info *, struct regcache *);
#endif /* INFERIORS_H */
diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c
index 8d7957b30e9..ef955ffc5a6 100644
--- a/gdb/gdbserver/regcache.c
+++ b/gdb/gdbserver/regcache.c
@@ -28,7 +28,7 @@ get_thread_regcache (struct thread_info *thread, int fetch)
{
struct regcache *regcache;
- regcache = (struct regcache *) inferior_regcache_data (thread);
+ regcache = inferior_regcache_data (thread);
/* Threads' regcaches are created lazily, because biarch targets add
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;
- regcache = (struct regcache *) inferior_regcache_data (thread);
+ regcache = inferior_regcache_data (thread);
if (regcache == NULL)
return;
@@ -277,8 +277,7 @@ find_register_by_number (const struct target_desc *tdesc, int n)
static void
free_register_cache_thread (struct thread_info *thread)
{
- struct regcache *regcache
- = (struct regcache *) inferior_regcache_data (thread);
+ struct regcache *regcache = inferior_regcache_data (thread);
if (regcache != NULL)
{