2012-02-24 Luis Machado <lgustavo@codesourcery.com>

* remote.c (remote_state) <cond_breakpoints>: New field.
	(PACKET_ConditionalBreakpoints): New enum.
	(remote_cond_breakpoint_feature): New function.
	(remote_protocol_features): Add new ConditionalBreakpoints entry.
	(remote_supports_cond_breakpoints): New function.
	(_initialize_remote): Add new packet configuration for
	target-side conditional breakpoints.
This commit is contained in:
Luis Machado 2012-02-24 15:09:41 +00:00
parent 83364271df
commit 3788aec75a
2 changed files with 40 additions and 0 deletions

View file

@ -1,3 +1,13 @@
2012-02-24 Luis Machado <lgustavo@codesourcery.com>
* remote.c (remote_state) <cond_breakpoints>: New field.
(PACKET_ConditionalBreakpoints): New enum.
(remote_cond_breakpoint_feature): New function.
(remote_protocol_features): Add new ConditionalBreakpoints entry.
(remote_supports_cond_breakpoints): New function.
(_initialize_remote): Add new packet configuration for
target-side conditional breakpoints.
2012-02-24 Luis Machado <lgustavo@codesourcery.com> 2012-02-24 Luis Machado <lgustavo@codesourcery.com>
* NEWS: Mention target-side conditional breakpoint support, * NEWS: Mention target-side conditional breakpoint support,

View file

@ -315,6 +315,10 @@ struct remote_state
/* True if the stub reports support for conditional tracepoints. */ /* True if the stub reports support for conditional tracepoints. */
int cond_tracepoints; int cond_tracepoints;
/* True if the stub reports support for target-side breakpoint
conditions. */
int cond_breakpoints;
/* True if the stub reports support for fast tracepoints. */ /* True if the stub reports support for fast tracepoints. */
int fast_tracepoints; int fast_tracepoints;
@ -1263,6 +1267,7 @@ enum {
PACKET_qXfer_siginfo_write, PACKET_qXfer_siginfo_write,
PACKET_qAttached, PACKET_qAttached,
PACKET_ConditionalTracepoints, PACKET_ConditionalTracepoints,
PACKET_ConditionalBreakpoints,
PACKET_FastTracepoints, PACKET_FastTracepoints,
PACKET_StaticTracepoints, PACKET_StaticTracepoints,
PACKET_InstallInTrace, PACKET_InstallInTrace,
@ -3716,6 +3721,16 @@ remote_cond_tracepoint_feature (const struct protocol_feature *feature,
rs->cond_tracepoints = (support == PACKET_ENABLE); rs->cond_tracepoints = (support == PACKET_ENABLE);
} }
static void
remote_cond_breakpoint_feature (const struct protocol_feature *feature,
enum packet_support support,
const char *value)
{
struct remote_state *rs = get_remote_state ();
rs->cond_breakpoints = (support == PACKET_ENABLE);
}
static void static void
remote_fast_tracepoint_feature (const struct protocol_feature *feature, remote_fast_tracepoint_feature (const struct protocol_feature *feature,
enum packet_support support, enum packet_support support,
@ -3810,6 +3825,8 @@ 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 },
{ "ConditionalBreakpoints", PACKET_DISABLE, remote_cond_breakpoint_feature,
PACKET_ConditionalBreakpoints },
{ "FastTracepoints", PACKET_DISABLE, remote_fast_tracepoint_feature, { "FastTracepoints", PACKET_DISABLE, remote_fast_tracepoint_feature,
PACKET_FastTracepoints }, PACKET_FastTracepoints },
{ "StaticTracepoints", PACKET_DISABLE, remote_static_tracepoint_feature, { "StaticTracepoints", PACKET_DISABLE, remote_static_tracepoint_feature,
@ -9853,6 +9870,14 @@ remote_supports_cond_tracepoints (void)
return rs->cond_tracepoints; return rs->cond_tracepoints;
} }
static int
remote_supports_cond_breakpoints (void)
{
struct remote_state *rs = get_remote_state ();
return rs->cond_breakpoints;
}
int int
remote_supports_fast_tracepoints (void) remote_supports_fast_tracepoints (void)
{ {
@ -11273,6 +11298,11 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
add_packet_config_cmd (&remote_protocol_packets[PACKET_ConditionalTracepoints], add_packet_config_cmd (&remote_protocol_packets[PACKET_ConditionalTracepoints],
"ConditionalTracepoints", "ConditionalTracepoints",
"conditional-tracepoints", 0); "conditional-tracepoints", 0);
add_packet_config_cmd (&remote_protocol_packets[PACKET_ConditionalBreakpoints],
"ConditionalBreakpoints",
"conditional-breakpoints", 0);
add_packet_config_cmd (&remote_protocol_packets[PACKET_FastTracepoints], add_packet_config_cmd (&remote_protocol_packets[PACKET_FastTracepoints],
"FastTracepoints", "fast-tracepoints", 0); "FastTracepoints", "fast-tracepoints", 0);