From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17522 invoked by alias); 8 Feb 2017 09:07:14 -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 17407 invoked by uid 89); 8 Feb 2017 09:07:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:Wed, H*MI:sk:87o9yd4, H*i:sk:87o9yd4, H*f:sk:87o9yd4 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Feb 2017 09:07:03 +0000 Received: from svr-orw-mbx-03.mgc.mentorg.com ([147.34.90.203]) by relay1.mentorg.com with esmtp id 1cbODN-0001jz-Bg from Luis_Gustavo@mentor.com ; Wed, 08 Feb 2017 01:07:01 -0800 Received: from [172.30.11.152] (147.34.91.1) by svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 8 Feb 2017 01:06:56 -0800 Reply-To: Luis Machado Subject: Re: [PATCH v2 4/6] Share parts of gdb/gdbthread.h with gdbserver References: <1482464361-4068-1-git-send-email-sergiodj@redhat.com> <20170118153605.4610-1-sergiodj@redhat.com> <20170118153605.4610-5-sergiodj@redhat.com> <4c95b9db-9727-439d-7f9b-5cb053d75117@codesourcery.com> <87o9yd4o9c.fsf@redhat.com> To: Sergio Durigan Junior CC: GDB Patches , Pedro Alves , Eli Zaretskii From: Luis Machado Message-ID: Date: Wed, 08 Feb 2017 09:07:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <87o9yd4o9c.fsf@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: svr-orw-mbx-04.mgc.mentorg.com (147.34.90.204) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) X-IsSubscribed: yes X-SW-Source: 2017-02/txt/msg00179.txt.bz2 On 02/07/2017 04:41 PM, Sergio Durigan Junior wrote: > On Wednesday, February 01 2017, Luis Machado wrote: > >> On 01/18/2017 09:36 AM, Sergio Durigan Junior wrote: >>> Again, it was necessary to share a few functions declared on >>> gdb/gdbthread.h with gdbserver, because they are needed by >>> fork_inferior. I decided to implement them on >>> gdb/gdbserver/inferiors.c because that's where the thread functions >>> are also implemented on gdbserver. Some of these functions do not >>> need to be implemented on gdbserver, or don't make sense there, so >>> they are left blank and commented properly. >>> >>> gdb/ChangeLog: >>> 2017-01-17 Sergio Durigan Junior >>> >>> * Makefile.in (HFILES_NO_SRCDIR): Add "common/common-gdbthread.h". >>> * common/common-gdbthread.h: New file, with parts from >>> "gdb/gdbthread.h". >>> * fork-child.c (fork_inferior): Update call of "set_executing". >>> * gdbthread.h: Include "common-gdbthread.h". >>> (init_thread_list): Moved to "common/common-gdbthread.h". >>> (add_thread_silent): Likewise. >>> (switch_to_thread): Likewise. >>> (set_executing): Likewise. >>> * thread.c (set_executing): Update function comment. >>> >>> gdb/gdbserver/ChangeLog: >>> 2017-01-17 Sergio Durigan Junior >>> >>> * inferiors.c (init_thread_list): New function. >>> (switch_to_thread): Likewise. >>> (set_executing): Likewise. >>> (add_thread_silent): Likewise. >>> * server.c (get_last_target_waitstatus): Likewise. >>> * server.h (get_last_target_waitstatus): Likewise. >>> --- >>> gdb/Makefile.in | 1 + >>> gdb/common/common-gdbthread.h | 45 +++++++++++++++++++++++++++++++++++++++++++ >>> gdb/gdbserver/inferiors.c | 41 +++++++++++++++++++++++++++++++++++++++ >>> gdb/gdbserver/server.c | 8 ++++++++ >>> gdb/gdbserver/server.h | 3 +++ >>> gdb/gdbthread.h | 20 +------------------ >>> gdb/thread.c | 2 ++ >>> 7 files changed, 101 insertions(+), 19 deletions(-) >>> create mode 100644 gdb/common/common-gdbthread.h >>> >>> diff --git a/gdb/Makefile.in b/gdb/Makefile.in >>> index c0325d5..3e49e6e 100644 >>> --- a/gdb/Makefile.in >>> +++ b/gdb/Makefile.in >>> @@ -1467,6 +1467,7 @@ HFILES_NO_SRCDIR = \ >>> common/common-debug.h \ >>> common/common-defs.h \ >>> common/common-exceptions.h \ >>> + common/common-gdbthread.h \ >>> common/common-regcache.h \ >>> common/common-types.h \ >>> common/common-utils.h \ >>> diff --git a/gdb/common/common-gdbthread.h b/gdb/common/common-gdbthread.h >>> new file mode 100644 >>> index 0000000..eb66de9 >>> --- /dev/null >>> +++ b/gdb/common/common-gdbthread.h >>> @@ -0,0 +1,45 @@ >>> +/* Common multi-process/thread control defs for GDB and gdbserver. >>> + Copyright (C) 1987-2017 Free Software Foundation, Inc. >>> + Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA. >>> + >>> + >>> + This file is part of GDB. >>> + >>> + This program is free software; you can redistribute it and/or modify >>> + it under the terms of the GNU General Public License as published by >>> + the Free Software Foundation; either version 3 of the License, or >>> + (at your option) any later version. >>> + >>> + This program is distributed in the hope that it will be useful, >>> + but WITHOUT ANY WARRANTY; without even the implied warranty of >>> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>> + GNU General Public License for more details. >>> + >>> + You should have received a copy of the GNU General Public License >>> + along with this program. If not, see . */ >>> + >>> +#ifndef COMMON_THREAD_H >>> +#define COMMON_THREAD_H >>> + >>> +struct target_waitstatus; >>> + >>> +/* Create an empty thread list, or empty the existing one. */ >>> +extern void init_thread_list (void); >>> + >>> +/* Switch from one thread to another. */ >>> +extern void switch_to_thread (ptid_t ptid); >>> + >>> +/* Marks thread PTID as executing, or not. If PTID is minus_one_ptid, >>> + marks all threads. >>> + >>> + Note that this is different from the running state. See the >>> + description of state and executing fields of struct >>> + thread_info. */ >>> +extern void set_executing (ptid_t ptid, int executing); >>> + >>> +/* Add a thread to the thread list and return the pointer to the new >>> + thread. Caller may use this pointer to initialize the private >>> + thread data. */ >>> +extern struct thread_info *add_thread_silent (ptid_t ptid); >>> + >>> +#endif /* ! COMMON_THREAD_H */ >>> diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c >>> index b65a726..441ec2c 100644 >>> --- a/gdb/gdbserver/inferiors.c >>> +++ b/gdb/gdbserver/inferiors.c >>> @@ -468,3 +468,44 @@ make_cleanup_restore_current_thread (void) >>> { >>> return make_cleanup (do_restore_current_thread_cleanup, current_thread); >>> } >>> + >>> +/* See common/common-gdbthread.h. */ >>> + >>> +void >>> +init_thread_list (void) >>> +{ >>> + /* To be implemented. */ >>> +} >>> + >>> +/* See common/common-gdbthread.h. */ >>> + >>> +void >>> +switch_to_thread (ptid_t ptid) >>> +{ >>> + if (!ptid_equal (ptid, minus_one_ptid)) >>> + current_thread = find_thread_ptid (ptid); >>> +} >>> + >>> +/* See common/common-gdbthread.h. */ >>> + >>> +void >>> +set_executing (ptid_t ptid ATTRIBUTE_UNUSED, int executing ATTRIBUTE_UNUSED) >>> +{ >>> + gdb_assert (current_thread != NULL); >>> + current_thread->last_resume_kind = resume_stop; >>> + current_thread->last_status = get_last_target_waitstatus (); >>> +} >>> + >> >> >> I'm still not sure about this particular function. But i'd like to >> hear what other think. > > What are your concerns? Having those parameters that are not actually used, as opposed to having a function that is the same for both GDB and GDBserver.