diff options
author | Luis Machado <luisgpm@br.ibm.com> | 2012-02-24 15:09:41 +0000 |
---|---|---|
committer | Luis Machado <luisgpm@br.ibm.com> | 2012-02-24 15:09:41 +0000 |
commit | 3788aec75a91b4b6e10255f20aaa649ddbfdf78c (patch) | |
tree | 463f785ef61c4bec677cd1e3f13aff32d62bff66 /gdb/remote.c | |
parent | 83364271df23ce6c725c739ba1b43a5928e5a048 (diff) | |
download | binutils-3788aec75a91b4b6e10255f20aaa649ddbfdf78c.zip binutils-3788aec75a91b4b6e10255f20aaa649ddbfdf78c.tar.gz binutils-3788aec75a91b4b6e10255f20aaa649ddbfdf78c.tar.bz2 |
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.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r-- | gdb/remote.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gdb/remote.c b/gdb/remote.c index 14c343b..e094917 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -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; @@ -1263,6 +1267,7 @@ enum { PACKET_qXfer_siginfo_write, PACKET_qAttached, PACKET_ConditionalTracepoints, + PACKET_ConditionalBreakpoints, PACKET_FastTracepoints, PACKET_StaticTracepoints, PACKET_InstallInTrace, @@ -3717,6 +3722,16 @@ remote_cond_tracepoint_feature (const struct protocol_feature *feature, } 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) @@ -3810,6 +3825,8 @@ static struct protocol_feature remote_protocol_features[] = { 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, @@ -9853,6 +9870,14 @@ remote_supports_cond_tracepoints (void) return rs->cond_tracepoints; } +static int +remote_supports_cond_breakpoints (void) +{ + struct remote_state *rs = get_remote_state (); + + return rs->cond_breakpoints; +} + int 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], "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); |