aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2013-05-23 17:13:57 +0000
committerPedro Alves <palves@redhat.com>2013-05-23 17:13:57 +0000
commitd458bd84a8d3576fa7c2b4e3132ebe96e104e918 (patch)
tree12c71c872b0dc0beacb229c5954cc2b55651d7f1
parentce4c476a0f4f38e08bce87f4144aaa7550e9a79d (diff)
downloadgdb-d458bd84a8d3576fa7c2b4e3132ebe96e104e918.zip
gdb-d458bd84a8d3576fa7c2b4e3132ebe96e104e918.tar.gz
gdb-d458bd84a8d3576fa7c2b4e3132ebe96e104e918.tar.bz2
Convert rs->support_vCont_t to a struct.
Convert the 'support_vCont_t' int field to a struct, in preparation for adding more fields to it. gdb/ 2013-05-23 Yao Qi <yao@codesourcery.com> Pedro Alves <palves@redhat.com> * remote.c (struct vCont_action_support): New struct. (struct remote_state) <support_vCont_t>: Remove field. <vCont_actions_support>: New field. (remote_vcont_probe, remote_stop_ns): Update.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/remote.c21
2 files changed, 24 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3389c9f..c352fd2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,6 +1,14 @@
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
+ * remote.c (struct vCont_action_support): New struct.
+ (struct remote_state) <support_vCont_t>: Remove field.
+ <vCont_actions_support>: New field.
+ (remote_vcont_probe, remote_stop_ns): Update.
+
+2013-05-23 Yao Qi <yao@codesourcery.com>
+ Pedro Alves <palves@redhat.com>
+
* gdbthread.h (pc_in_thread_step_range): New declaration.
* thread.c (pc_in_thread_step_range): New function.
* infrun.c (handle_inferior_event): Use it.
diff --git a/gdb/remote.c b/gdb/remote.c
index 51bf025..eb58b94 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -251,6 +251,17 @@ static struct cmd_list_element *remote_cmdlist;
static struct cmd_list_element *remote_set_cmdlist;
static struct cmd_list_element *remote_show_cmdlist;
+/* Stub vCont actions support.
+
+ Each field is a boolean flag indicating whether the stub reports
+ support for the corresponding action. */
+
+struct vCont_action_support
+{
+ /* vCont;t */
+ int t;
+};
+
/* Description of the remote protocol state for the currently
connected target. This is per-target state, and independent of the
selected architecture. */
@@ -308,8 +319,8 @@ struct remote_state
/* True if the stub reports support for non-stop mode. */
int non_stop_aware;
- /* True if the stub reports support for vCont;t. */
- int support_vCont_t;
+ /* The status of the stub support for the various vCont actions. */
+ struct vCont_action_support supports_vCont;
/* True if the stub reports support for conditional tracepoints. */
int cond_tracepoints;
@@ -4641,7 +4652,7 @@ remote_vcont_probe (struct remote_state *rs)
support_S = 0;
support_c = 0;
support_C = 0;
- rs->support_vCont_t = 0;
+ rs->supports_vCont.t = 0;
while (p && *p == ';')
{
p++;
@@ -4654,7 +4665,7 @@ remote_vcont_probe (struct remote_state *rs)
else if (*p == 'C' && (*(p + 1) == ';' || *(p + 1) == 0))
support_C = 1;
else if (*p == 't' && (*(p + 1) == ';' || *(p + 1) == 0))
- rs->support_vCont_t = 1;
+ rs->supports_vCont.t = 1;
p = strchr (p, ';');
}
@@ -5003,7 +5014,7 @@ remote_stop_ns (ptid_t ptid)
if (remote_protocol_packets[PACKET_vCont].support == PACKET_SUPPORT_UNKNOWN)
remote_vcont_probe (rs);
- if (!rs->support_vCont_t)
+ if (!rs->supports_vCont.t)
error (_("Remote server does not support stopping threads"));
if (ptid_equal (ptid, minus_one_ptid)