From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32055 invoked by alias); 28 Jun 2013 17:40:46 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 32028 invoked by uid 89); 28 Jun 2013 17:40:45 -0000 X-Spam-SWARE-Status: No, score=-7.4 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 28 Jun 2013 17:40:44 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r5SHegZk011198 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 28 Jun 2013 13:40:43 -0400 Received: from barimba.redhat.com (ovpn-113-102.phx2.redhat.com [10.3.113.102]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r5SHea0U010167; Fri, 28 Jun 2013 13:40:42 -0400 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 05/16] push general_thread and continue_thread into struct remote_state Date: Fri, 28 Jun 2013 17:40:00 -0000 Message-Id: <1372441229-305-6-git-send-email-tromey@redhat.com> In-Reply-To: <1372441229-305-1-git-send-email-tromey@redhat.com> References: <1372441229-305-1-git-send-email-tromey@redhat.com> X-SW-Source: 2013-06/txt/msg00900.txt.bz2 This moves the globals general_thread and continue_thread into remote_state. * remote.c (struct remote_state) : New fields. (general_thread, continue_thread): Remove. (record_currthread, set_thread, set_general_process) (remote_open_1, extended_remote_attach_1, remote_wait_as) (extended_remote_mourn_1): Update. --- gdb/remote.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/gdb/remote.c b/gdb/remote.c index 9dfc73b..6d9478f 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -183,8 +183,6 @@ static ptid_t remote_current_thread (ptid_t oldptid); static void remote_find_new_threads (void); -static void record_currthread (ptid_t currthread); - static int fromhex (int a); static int putpkt_binary (char *buf, int cnt); @@ -373,6 +371,11 @@ struct remote_state remote_open knows that we don't have a file open when the program starts. */ struct serial *remote_desc; + + /* These are the threads which we last sent to the remote system. The + TID member will be -1 for all or -2 for not sent yet. */ + ptid_t general_thread; + ptid_t continue_thread; }; /* Private data that we'll store in (struct thread_info)->private. */ @@ -1439,12 +1442,6 @@ static ptid_t magic_null_ptid; static ptid_t not_sent_ptid; static ptid_t any_thread_ptid; -/* These are the threads which we last sent to the remote system. The - TID member will be -1 for all or -2 for not sent yet. */ - -static ptid_t general_thread; -static ptid_t continue_thread; - /* This is the traceframe which we last selected on the remote system. It will be -1 if no traceframe is selected. */ static int remote_traceframe_number = -1; @@ -1649,9 +1646,9 @@ demand_private_info (ptid_t ptid) 3) Successful execution of set thread */ static void -record_currthread (ptid_t currthread) +record_currthread (struct remote_state *rs, ptid_t currthread) { - general_thread = currthread; + rs->general_thread = currthread; } static char *last_pass_packet; @@ -1775,7 +1772,7 @@ static void set_thread (struct ptid ptid, int gen) { struct remote_state *rs = get_remote_state (); - ptid_t state = gen ? general_thread : continue_thread; + ptid_t state = gen ? rs->general_thread : rs->continue_thread; char *buf = rs->buf; char *endbuf = rs->buf + get_remote_packet_size (); @@ -1795,9 +1792,9 @@ set_thread (struct ptid ptid, int gen) putpkt (rs->buf); getpkt (&rs->buf, &rs->buf_size, 0); if (gen) - general_thread = ptid; + rs->general_thread = ptid; else - continue_thread = ptid; + rs->continue_thread = ptid; } static void @@ -1832,7 +1829,7 @@ set_general_process (void) /* We only need to change the remote current thread if it's pointing at some other process. */ - if (ptid_get_pid (general_thread) != ptid_get_pid (inferior_ptid)) + if (ptid_get_pid (rs->general_thread) != ptid_get_pid (inferior_ptid)) set_general_thread (inferior_ptid); } @@ -4347,8 +4344,8 @@ remote_open_1 (char *name, int from_tty, rs->waiting_for_stop_reply = 0; rs->ctrlc_pending_p = 0; - general_thread = not_sent_ptid; - continue_thread = not_sent_ptid; + rs->general_thread = not_sent_ptid; + rs->continue_thread = not_sent_ptid; remote_traceframe_number = -1; /* Probe for ability to use "ThreadInfo" query, as required. */ @@ -4566,7 +4563,7 @@ extended_remote_attach_1 (struct target_ops *target, char *args, int from_tty) inferior_ptid = pid_to_ptid (pid); /* Invalidate our notion of the remote current thread. */ - record_currthread (minus_one_ptid); + record_currthread (rs, minus_one_ptid); } else { @@ -6065,13 +6062,13 @@ remote_wait_as (ptid_t ptid, struct target_waitstatus *status, int options) && status->kind != TARGET_WAITKIND_SIGNALLED) { if (!ptid_equal (event_ptid, null_ptid)) - record_currthread (event_ptid); + record_currthread (rs, event_ptid); else event_ptid = inferior_ptid; } else /* A process exit. Invalidate our notion of current thread. */ - record_currthread (minus_one_ptid); + record_currthread (rs, minus_one_ptid); return event_ptid; } @@ -7922,7 +7919,7 @@ extended_remote_mourn_1 (struct target_ops *target) To keep things simple, we always invalidate our notion of the current thread. */ - record_currthread (minus_one_ptid); + record_currthread (rs, minus_one_ptid); /* Unlike "target remote", we do not want to unpush the target; then the next time the user says "run", we won't be connected. */ -- 1.8.1.4