2012-01-05 Luis Machado * remote.c (remote_state) : 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. Index: gdb/gdb/remote.c =================================================================== --- gdb.orig/gdb/remote.c 2012-01-04 14:02:33.750431998 -0200 +++ gdb/gdb/remote.c 2012-01-04 14:03:00.810431999 -0200 @@ -315,6 +315,10 @@ struct remote_state /* True if the stub reports support for conditional 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. */ int fast_tracepoints; @@ -1262,6 +1266,7 @@ enum { PACKET_qXfer_siginfo_write, PACKET_qAttached, PACKET_ConditionalTracepoints, + PACKET_ConditionalBreakpoints, PACKET_FastTracepoints, PACKET_StaticTracepoints, PACKET_InstallInTrace, @@ -3680,6 +3685,16 @@ remote_cond_tracepoint_feature (const st } 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 remote_fast_tracepoint_feature (const struct protocol_feature *feature, enum packet_support support, const char *value) @@ -3773,6 +3788,8 @@ static struct protocol_feature remote_pr PACKET_qXfer_siginfo_write }, { "ConditionalTracepoints", PACKET_DISABLE, remote_cond_tracepoint_feature, PACKET_ConditionalTracepoints }, + { "ConditionalBreakpoints", PACKET_DISABLE, remote_cond_breakpoint_feature, + PACKET_ConditionalBreakpoints }, { "FastTracepoints", PACKET_DISABLE, remote_fast_tracepoint_feature, PACKET_FastTracepoints }, { "StaticTracepoints", PACKET_DISABLE, remote_static_tracepoint_feature, @@ -9763,6 +9780,14 @@ remote_supports_cond_tracepoints (void) } int +remote_supports_cond_breakpoints (void) +{ + struct remote_state *rs = get_remote_state (); + + return rs->cond_breakpoints; +} + +int remote_supports_fast_tracepoints (void) { struct remote_state *rs = get_remote_state (); @@ -11165,6 +11190,11 @@ Show the maximum size of the address (in add_packet_config_cmd (&remote_protocol_packets[PACKET_ConditionalTracepoints], "ConditionalTracepoints", "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], "FastTracepoints", "fast-tracepoints", 0);