gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 13 Jul 2011 17:07:16 +0000 (17:07 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 13 Jul 2011 17:07:16 +0000 (17:07 +0000)
Work around kgdb.
* remote.c (remote_get_trace_status): New variable ex.  Put
remote_get_noisy_reply into TRY_CATCH.  Call exception_fprintf for it.

gdb/ChangeLog
gdb/remote.c

index 4062bf9cefbce1a22c3fecc454f0f0187f84385c..6d2ee2cfcf03ec68b3700f307d85a0515c85bcfa 100644 (file)
@@ -1,3 +1,9 @@
+2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Work around kgdb.
+       * remote.c (remote_get_trace_status): New variable ex.  Put
+       remote_get_noisy_reply into TRY_CATCH.  Call exception_fprintf for it.
+
 2011-07-13  Tom Tromey  <tromey@redhat.com>
 
        * dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
index 19cc0b6748861c77d51d59cbae1af61f97a6b40d..f9059e672d432b58fd18639cc54b69fffe9e2f03 100644 (file)
@@ -10045,11 +10045,21 @@ remote_get_trace_status (struct trace_status *ts)
   char *p;
   /* FIXME we need to get register block size some other way.  */
   extern int trace_regblock_size;
+  volatile struct gdb_exception ex;
 
   trace_regblock_size = get_remote_arch_state ()->sizeof_g_packet;
 
   putpkt ("qTStatus");
-  p = remote_get_noisy_reply (&target_buf, &target_buf_size);
+
+  TRY_CATCH (ex, RETURN_MASK_ERROR)
+    {
+      p = remote_get_noisy_reply (&target_buf, &target_buf_size);
+    }
+  if (ex.reason < 0)
+    {
+      exception_fprintf (gdb_stderr, ex, "qTStatus: ");
+      return -1;
+    }
 
   /* If the remote target doesn't do tracing, flag it.  */
   if (*p == '\0')