aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorLuis Machado <luisgpm@br.ibm.com>2012-02-24 15:09:41 +0000
committerLuis Machado <luisgpm@br.ibm.com>2012-02-24 15:09:41 +0000
commit3788aec75a91b4b6e10255f20aaa649ddbfdf78c (patch)
tree463f785ef61c4bec677cd1e3f13aff32d62bff66 /gdb/remote.c
parent83364271df23ce6c725c739ba1b43a5928e5a048 (diff)
downloadgdb-3788aec75a91b4b6e10255f20aaa649ddbfdf78c.zip
gdb-3788aec75a91b4b6e10255f20aaa649ddbfdf78c.tar.gz
gdb-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.c30
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);