Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Add 'reverse' capability query to remote protocol (qSupported).
@ 2009-08-31 20:02 Michael Snyder
  2009-09-01  2:44 ` Hui Zhu
  2009-09-01 15:44 ` Pedro Alves
  0 siblings, 2 replies; 16+ messages in thread
From: Michael Snyder @ 2009-08-31 20:02 UTC (permalink / raw)
  To: gdb-patches, Jakob Engblom, Pedro Alves, Greg Law

[-- Attachment #1: Type: text/plain, Size: 766 bytes --]

Following discussion, this patch adds feature capability handling
(enable, disable, and automatic "qSupported" query) for the reverse
execution packets "bs" (backward step) and "bc" (backward continue
in the gdb remote protocol.

Cc:ing Jakob and Greg, whose remote targets may be affected.
What you guys will want to do is have your remote targets
recognize the "qSupported" query from gdb, and respond with:

	ReverseContinue+;ReverseStep+

This will tell gdb that your targets support those two commands.

Otherwise, they default to "disabled", and a user would need
to enable them with these commands (which might be added to a
.gdbinit file):

	set remote reverse-continue on
	set remote reverse-step on

Pedro, does this look like what you expected?

Michael


[-- Attachment #2: qStatus.txt --]
[-- Type: text/plain, Size: 2108 bytes --]

2009-08-31  Michael Snyder  <msnyder@vmware.com>

	* remote.c (PACKET_bc, PACKET_bs): New enums.
	(remote_protocol_features): Add ReverseStep, ReverseContinue.
	(remote_resume): Check for reverse capability.
	(_initialize_remote): Add packet config for "bs" and "bc" packets.

Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.370
diff -u -p -r1.370 remote.c
--- remote.c	18 Aug 2009 16:17:16 -0000	1.370
+++ remote.c	31 Aug 2009 19:55:21 -0000
@@ -1000,6 +1000,8 @@ enum {
   PACKET_qXfer_siginfo_write,
   PACKET_qAttached,
   PACKET_ConditionalTracepoints,
+  PACKET_bc,
+  PACKET_bs,
   PACKET_MAX
 };
 
@@ -3051,6 +3053,10 @@ static struct protocol_feature remote_pr
     PACKET_qXfer_siginfo_write },
   { "ConditionalTracepoints", PACKET_DISABLE, remote_cond_tracepoint_feature,
     PACKET_ConditionalTracepoints },
+  { "ReverseContinue", PACKET_DISABLE, remote_supported_packet,
+    PACKET_bc },
+  { "ReverseStep", PACKET_DISABLE, remote_supported_packet,
+    PACKET_bs },
 };
 
 static void
@@ -3818,6 +3824,14 @@ remote_resume (struct target_ops *ops,
       if (info_verbose && siggnal != TARGET_SIGNAL_0)
 	warning (" - Can't pass signal %d to target in reverse: ignored.\n",
 		 siggnal);
+
+      if (step &&
+	  remote_protocol_packets[PACKET_bs].support == PACKET_DISABLE)
+	error ("Remote reverse-step not supported.");
+      if (!step &&
+	  remote_protocol_packets[PACKET_bc].support == PACKET_DISABLE)
+	error ("Remote reverse-continue not supported.");
+
       strcpy (buf, step ? "bs" : "bc");
     }
   else if (siggnal != TARGET_SIGNAL_0)
@@ -9165,6 +9179,12 @@ Show the maximum size of the address (in
 			 "qGetTLSAddr", "get-thread-local-storage-address",
 			 0);
 
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_bc],
+			 "bc", "reverse-continue", 0);
+
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_bs],
+			 "bs", "reverse-step", 0);
+
   add_packet_config_cmd (&remote_protocol_packets[PACKET_qSupported],
 			 "qSupported", "supported-packets", 0);
 

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2009-09-10 21:03 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-31 20:02 [PATCH] Add 'reverse' capability query to remote protocol (qSupported) Michael Snyder
2009-09-01  2:44 ` Hui Zhu
2009-09-01  4:02   ` Michael Snyder
2009-09-01  4:44     ` Hui Zhu
2009-09-01 15:52     ` Pedro Alves
2009-09-01 15:44 ` Pedro Alves
2009-09-01 17:07   ` Eli Zaretskii
2009-09-06  3:37     ` Michael Snyder
2009-09-06 17:05       ` Eli Zaretskii
2009-09-07 21:29       ` Pedro Alves
2009-09-07 22:19         ` Michael Snyder
2009-09-07 22:20           ` Michael Snyder
2009-09-07 22:33             ` Pedro Alves
2009-09-08  7:40           ` Greg Law
2009-09-09 10:45             ` Jakob Engblom
2009-09-10 21:03               ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox