push last_sent_signal into struct remote_state
authorTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:06:49 +0000 (18:06 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:06:49 +0000 (18:06 +0000)
This moves the global last_sent_signal into remote_state.

* remote.c (struct remote_state) <last_sent_signal>:
New field.
(last_sent_signal): Remove.
(new_remote_state, remote_resume, remote_wait_as): Update.

gdb/ChangeLog
gdb/remote.c

index 5252078e7b1172e532d6297bc51769784fd04367..423552eea49a4484a72e390dc8397f325bd116d7 100644 (file)
@@ -1,3 +1,10 @@
+2013-08-14  Tom Tromey  <tromey@redhat.com>
+
+       * remote.c (struct remote_state) <last_sent_signal>:
+       New field.
+       (last_sent_signal): Remove.
+       (new_remote_state, remote_resume, remote_wait_as): Update.
+
 2013-08-14  Tom Tromey  <tromey@redhat.com>
 
        * remote.c (struct remote_state) <last_program_signals_packet>:
index ad32e76988e0087f759668ecf43f537a9f64d512..e76996e1940dff2af2ae38d53ccd67b3ed5af330 100644 (file)
@@ -383,6 +383,8 @@ struct remote_state
      packet is exactly the same as the last we sent.  IOW, we only let
      the target know about program signals list changes.  */
   char *last_program_signals_packet;
+
+  enum gdb_signal last_sent_signal;
 };
 
 /* Private data that we'll store in (struct thread_info)->private.  */
@@ -431,6 +433,7 @@ new_remote_state (void)
   result->buf_size = 400;
   result->buf = xmalloc (result->buf_size);
   result->remote_traceframe_number = -1;
+  result->last_sent_signal = GDB_SIGNAL_0;
 
   return result;
 }
@@ -4907,8 +4910,6 @@ remote_vcont_resume (ptid_t ptid, int step, enum gdb_signal siggnal)
 
 /* Tell the remote machine to resume.  */
 
-static enum gdb_signal last_sent_signal = GDB_SIGNAL_0;
-
 static int last_sent_step;
 
 static void
@@ -4927,7 +4928,7 @@ remote_resume (struct target_ops *ops,
   if (!non_stop)
     remote_notif_process (&notif_client_stop);
 
-  last_sent_signal = siggnal;
+  rs->last_sent_signal = siggnal;
   last_sent_step = step;
 
   /* The vCont packet doesn't need to specify threads via Hc.  */
@@ -6019,15 +6020,15 @@ remote_wait_as (ptid_t ptid, struct target_waitstatus *status, int options)
 
       break;
     case '\0':
-      if (last_sent_signal != GDB_SIGNAL_0)
+      if (rs->last_sent_signal != GDB_SIGNAL_0)
        {
          /* Zero length reply means that we tried 'S' or 'C' and the
             remote system doesn't support it.  */
          target_terminal_ours_for_output ();
          printf_filtered
            ("Can't send signals to this remote system.  %s not sent.\n",
-            gdb_signal_to_name (last_sent_signal));
-         last_sent_signal = GDB_SIGNAL_0;
+            gdb_signal_to_name (rs->last_sent_signal));
+         rs->last_sent_signal = GDB_SIGNAL_0;
          target_terminal_inferior ();
 
          strcpy ((char *) buf, last_sent_step ? "s" : "c");