summaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-08-14 18:17:12 +0000
committerTom Tromey <tromey@redhat.com>2013-08-14 18:17:12 +0000
commit5c0146f05a0e2dbb22ee9d8fa15c694416d1b0dd (patch)
treeef740916f073b035ef426d60da59368a93575351 /gdb/remote.c
parentc4ff6240497bed84d87ad36114762fbe6749e390 (diff)
downloadgdb-5c0146f05a0e2dbb22ee9d8fa15c694416d1b0dd.tar.gz
move remote_stopped_by_watchpoint_p and remote_watch_data_address into remote_state
This moves the globals remote_stopped_by_watchpoint_p and remote_watch_data_address into remote_state. * remote.c (struct remote_state) <remote_stopped_by_watchpoint_p, remote_watch_data_address>: New fields. (remote_stopped_by_watchpoint_p, remote_watch_data_address): Remove. (process_stop_reply, remote_wait_as) (remote_check_watch_resources, remote_stopped_data_address): Update.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/gdb/remote.c b/gdb/remote.c
index 469d8a49c52..28223c084d7 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -405,6 +405,13 @@ struct remote_state
void (*async_client_callback) (enum inferior_event_type event_type,
void *context);
void *async_client_context;
+
+ /* This is set to the data address of the access causing the target
+ to stop for a watchpoint. */
+ CORE_ADDR remote_watch_data_address;
+
+ /* This is non-zero if target stopped for a watchpoint. */
+ int remote_stopped_by_watchpoint_p;
};
/* Private data that we'll store in (struct thread_info)->private. */
@@ -789,17 +796,6 @@ packet_reg_from_pnum (struct remote_arch_state *rsa, LONGEST pnum)
return NULL;
}
-/* FIXME: graces/2002-08-08: These variables should eventually be
- bound to an instance of the target object (as in gdbarch-tdep()),
- when such a thing exists. */
-
-/* This is set to the data address of the access causing the target
- to stop for a watchpoint. */
-static CORE_ADDR remote_watch_data_address;
-
-/* This is non-zero if target stopped for a watchpoint. */
-static int remote_stopped_by_watchpoint_p;
-
static struct target_ops remote_ops;
static struct target_ops extended_remote_ops;
@@ -5843,6 +5839,8 @@ process_stop_reply (struct stop_reply *stop_reply,
if (status->kind != TARGET_WAITKIND_EXITED
&& status->kind != TARGET_WAITKIND_SIGNALLED)
{
+ struct remote_state *rs = get_remote_state ();
+
/* Expedited registers. */
if (stop_reply->regcache)
{
@@ -5858,8 +5856,8 @@ process_stop_reply (struct stop_reply *stop_reply,
VEC_free (cached_reg_t, stop_reply->regcache);
}
- remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p;
- remote_watch_data_address = stop_reply->watch_data_address;
+ rs->remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p;
+ rs->remote_watch_data_address = stop_reply->watch_data_address;
remote_notice_new_inferior (ptid, 0);
demand_private_info (ptid)->core = stop_reply->core;
@@ -5985,7 +5983,7 @@ remote_wait_as (ptid_t ptid, struct target_waitstatus *status, int options)
buf = rs->buf;
- remote_stopped_by_watchpoint_p = 0;
+ rs->remote_stopped_by_watchpoint_p = 0;
/* We got something. */
rs->waiting_for_stop_reply = 0;
@@ -8426,17 +8424,20 @@ remote_check_watch_resources (int type, int cnt, int ot)
static int
remote_stopped_by_watchpoint (void)
{
- return remote_stopped_by_watchpoint_p;
+ struct remote_state *rs = get_remote_state ();
+
+ return rs->remote_stopped_by_watchpoint_p;
}
static int
remote_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
{
+ struct remote_state *rs = get_remote_state ();
int rc = 0;
if (remote_stopped_by_watchpoint ())
{
- *addr_p = remote_watch_data_address;
+ *addr_p = rs->remote_watch_data_address;
rc = 1;
}