mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 09:14:14 +08:00
2009-09-10 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. * NEWS (new options): Mention set/show for "bs" and "bc" packets.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2009-09-10 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.
|
||||||
|
* NEWS (new options): Mention set/show for "bs" and "bc" packets.
|
||||||
|
|
||||||
2009-09-10 Joel Brobecker <brobecker@adacore.com>
|
2009-09-10 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
* top.c (interactive_mode): New static variable.
|
* top.c (interactive_mode): New static variable.
|
||||||
|
8
gdb/NEWS
8
gdb/NEWS
@ -309,6 +309,14 @@ show remote write-siginfo-object
|
|||||||
Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
|
Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
|
||||||
packet.
|
packet.
|
||||||
|
|
||||||
|
set remote reverse-continue
|
||||||
|
show remote reverse-continue
|
||||||
|
Control use of remote protocol 'bc' (reverse-continue) packet.
|
||||||
|
|
||||||
|
set remote reverse-step
|
||||||
|
show remote reverse-step
|
||||||
|
Control use of remote protocol 'bs' (reverse-step) packet.
|
||||||
|
|
||||||
set displaced-stepping
|
set displaced-stepping
|
||||||
show displaced-stepping
|
show displaced-stepping
|
||||||
Control displaced stepping mode. Displaced stepping is a way to
|
Control displaced stepping mode. Displaced stepping is a way to
|
||||||
|
34
gdb/remote.c
34
gdb/remote.c
@ -1000,6 +1000,8 @@ enum {
|
|||||||
PACKET_qXfer_siginfo_write,
|
PACKET_qXfer_siginfo_write,
|
||||||
PACKET_qAttached,
|
PACKET_qAttached,
|
||||||
PACKET_ConditionalTracepoints,
|
PACKET_ConditionalTracepoints,
|
||||||
|
PACKET_bc,
|
||||||
|
PACKET_bs,
|
||||||
PACKET_MAX
|
PACKET_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3051,6 +3053,10 @@ static struct protocol_feature remote_protocol_features[] = {
|
|||||||
PACKET_qXfer_siginfo_write },
|
PACKET_qXfer_siginfo_write },
|
||||||
{ "ConditionalTracepoints", PACKET_DISABLE, remote_cond_tracepoint_feature,
|
{ "ConditionalTracepoints", PACKET_DISABLE, remote_cond_tracepoint_feature,
|
||||||
PACKET_ConditionalTracepoints },
|
PACKET_ConditionalTracepoints },
|
||||||
|
{ "ReverseContinue", PACKET_DISABLE, remote_supported_packet,
|
||||||
|
PACKET_bc },
|
||||||
|
{ "ReverseStep", PACKET_DISABLE, remote_supported_packet,
|
||||||
|
PACKET_bs },
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -3801,8 +3807,10 @@ remote_resume (struct target_ops *ops,
|
|||||||
remote_pass_signals ();
|
remote_pass_signals ();
|
||||||
|
|
||||||
/* The vCont packet doesn't need to specify threads via Hc. */
|
/* The vCont packet doesn't need to specify threads via Hc. */
|
||||||
if (remote_vcont_resume (ptid, step, siggnal))
|
/* No reverse support (yet) for vCont. */
|
||||||
goto done;
|
if (execution_direction != EXEC_REVERSE)
|
||||||
|
if (remote_vcont_resume (ptid, step, siggnal))
|
||||||
|
goto done;
|
||||||
|
|
||||||
/* All other supported resume packets do use Hc, so set the continue
|
/* All other supported resume packets do use Hc, so set the continue
|
||||||
thread. */
|
thread. */
|
||||||
@ -3818,6 +3826,14 @@ remote_resume (struct target_ops *ops,
|
|||||||
if (info_verbose && siggnal != TARGET_SIGNAL_0)
|
if (info_verbose && siggnal != TARGET_SIGNAL_0)
|
||||||
warning (" - Can't pass signal %d to target in reverse: ignored.\n",
|
warning (" - Can't pass signal %d to target in reverse: ignored.\n",
|
||||||
siggnal);
|
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");
|
strcpy (buf, step ? "bs" : "bc");
|
||||||
}
|
}
|
||||||
else if (siggnal != TARGET_SIGNAL_0)
|
else if (siggnal != TARGET_SIGNAL_0)
|
||||||
@ -8730,12 +8746,14 @@ remote_command (char *args, int from_tty)
|
|||||||
help_list (remote_cmdlist, "remote ", -1, gdb_stdout);
|
help_list (remote_cmdlist, "remote ", -1, gdb_stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int remote_target_can_reverse = 1;
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
remote_can_execute_reverse (void)
|
remote_can_execute_reverse (void)
|
||||||
{
|
{
|
||||||
return remote_target_can_reverse;
|
if (remote_protocol_packets[PACKET_bs].support == PACKET_ENABLE
|
||||||
|
|| remote_protocol_packets[PACKET_bc].support == PACKET_ENABLE)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -9165,6 +9183,12 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
|
|||||||
"qGetTLSAddr", "get-thread-local-storage-address",
|
"qGetTLSAddr", "get-thread-local-storage-address",
|
||||||
0);
|
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],
|
add_packet_config_cmd (&remote_protocol_packets[PACKET_qSupported],
|
||||||
"qSupported", "supported-packets", 0);
|
"qSupported", "supported-packets", 0);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user