From d458bd84a8d3576fa7c2b4e3132ebe96e104e918 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 23 May 2013 17:13:57 +0000 Subject: [PATCH] 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 Pedro Alves * remote.c (struct vCont_action_support): New struct. (struct remote_state) : Remove field. : New field. (remote_vcont_probe, remote_stop_ns): Update. --- gdb/ChangeLog | 8 ++++++++ gdb/remote.c | 21 ++++++++++++++++----- 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 Pedro Alves + * remote.c (struct vCont_action_support): New struct. + (struct remote_state) : Remove field. + : New field. + (remote_vcont_probe, remote_stop_ns): Update. + +2013-05-23 Yao Qi + Pedro Alves + * 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) -- 2.7.4