From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26824 invoked by alias); 6 Aug 2014 18:15:35 -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 26676 invoked by uid 89); 6 Aug 2014 18:15:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f202.google.com Received: from mail-pd0-f202.google.com (HELO mail-pd0-f202.google.com) (209.85.192.202) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Wed, 06 Aug 2014 18:15:32 +0000 Received: by mail-pd0-f202.google.com with SMTP id w10so735607pde.5 for ; Wed, 06 Aug 2014 11:15:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:mime-version:content-type :content-transfer-encoding:message-id:date:to:cc:subject:in-reply-to :references; bh=QX6Kt8f18FrBUNNYpa5s2LKcm37bY/PCBbYdvAkhK98=; b=OsClGOg+lbUUH6oWe755q+E34be0hyj9M9NOizyMa7B+Kb7VqOIaSaf31kfbge+GMA WsF2sDwhFpcs01xa6r4FlCdUxTcMMPbm0pG624C+tJWtuN1xgvkdQe61/tOtfj873HiN rMS2uhLpPUwhZ8geCt1XyNMieqWMceby8hP22v7C3e/mGqfn/8JlSlKdfna7ycPWNAVy 5grpx+VOq1/yqLeqYPrbxCUjONP1t6xfzTBMY0AToKcKQX2hS8svL0rRXOUHrmD1s59A azkC5otyTH87gf4m9bEb5F75AX5j1irhZfvy25NPm3y7H8bqYK7pE27p83H7szajavuU F1Ww== X-Gm-Message-State: ALoCoQmAYaVLRBMwQTgdMaXbgAmP1knj5DT+VWE/bwvPzVYUojOaUNEQQI3bcJ7aJzJp047e5XEc X-Received: by 10.70.89.97 with SMTP id bn1mr6520933pdb.5.1407348930582; Wed, 06 Aug 2014 11:15:30 -0700 (PDT) Received: from corp2gmr1-1.hot.corp.google.com (corp2gmr1-1.hot.corp.google.com [172.24.189.92]) by gmr-mx.google.com with ESMTPS id v44si116816yhv.0.2014.08.06.11.15.30 for (version=TLSv1.1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 06 Aug 2014 11:15:30 -0700 (PDT) Received: from ruffy.mtv.corp.google.com (ruffy.mtv.corp.google.com [172.17.128.44]) by corp2gmr1-1.hot.corp.google.com (Postfix) with ESMTP id AFC8831C1D2; Wed, 6 Aug 2014 11:15:29 -0700 (PDT) From: Doug Evans MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <21474.28865.169166.532935@ruffy.mtv.corp.google.com> Date: Wed, 06 Aug 2014 18:15:00 -0000 To: Gary Benson Cc: gdb-patches@sourceware.org, Pedro Alves , Tom Tromey Subject: Re: [PATCH 07/11 v5] Introduce get_thread_regcache_for_ptid In-Reply-To: <1406888377-25795-8-git-send-email-gbenson@redhat.com> References: <1406888377-25795-1-git-send-email-gbenson@redhat.com> <1406888377-25795-8-git-send-email-gbenson@redhat.com> X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00113.txt.bz2 Gary Benson writes: > This introduces get_thread_regcache_for_ptid so that we can simplify > nat/linux-btrace.c. A better long term solution would be unify the > regcache code, but this is sufficient for now. > > gdb/ > 2014-08-01 Tom Tromey > Gary Benson > > * common/common-regcache.h: New file. > * Makefile.in (HFILES_NO_SRCDIR): Add common/common-regcache.h. > * regcache.c: Include the above. > (get_thread_regcache_for_ptid): New function. > * nat/linux-btrace.c: Include common-regcache.h. > (perf_event_read_bts): Use get_thread_regcache_for_ptid. > > gdb/gdbserver/ > 2014-08-01 Tom Tromey > Gary Benson > > * regcache.c: Include common-regcache.h. > (get_thread_regcache_for_ptid): New function. > [...] > diff --git a/gdb/common/common-regcache.h b/gdb/common/common-regcache.h > new file mode 100644 > index 0000000..2ef7cb1 > --- /dev/null > +++ b/gdb/common/common-regcache.h > @@ -0,0 +1,28 @@ > +/* Cache and manage the values of registers > + > + Copyright (C) 1986-2014 Free Software Foundation, Inc. > + > + 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_REGCACHE_H > +#define COMMON_REGCACHE_H > + > +/* A hack until we have an independent regcache. This must be > + provided by the user. */ This should still say what the function does, what the inputs/outputs are, etc. > + > +extern struct regcache *get_thread_regcache_for_ptid (ptid_t ptid); > + > +#endif /* COMMON_REGCACHE_H */ > diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c > index db9dad9..ec4f6c7 100644 > --- a/gdb/gdbserver/regcache.c > +++ b/gdb/gdbserver/regcache.c > @@ -21,6 +21,8 @@ > #include "gdbthread.h" > #include "tdesc.h" > #include "rsp-low.h" > +#include "common-regcache.h" > + > #ifndef IN_PROCESS_AGENT > > struct regcache * > @@ -61,6 +63,14 @@ get_thread_regcache (struct thread_info *thread, int fetch) > return regcache; > } > > +/* See common/linux-btrace.h. */ It's nat/linux-btrace.h, but I think you mean common/common-regcache.h. [setting aside the #include "common/regcache.h" discussion] > + > +struct regcache * > +get_thread_regcache_for_ptid (ptid_t ptid) > +{ > + return get_thread_regcache (find_thread_ptid (ptid), 1); > +} > + > void > regcache_invalidate_thread (struct thread_info *thread) > { > diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c > index f6fdbda..b32d04c 100644 > --- a/gdb/nat/linux-btrace.c > +++ b/gdb/nat/linux-btrace.c > @@ -30,6 +30,7 @@ > #include "gdbthread.h" > #include "gdb_wait.h" > #include "i386-cpuid.h" > +#include "common-regcache.h" > > #ifdef HAVE_SYS_SYSCALL_H > #include > @@ -180,11 +181,7 @@ perf_event_read_bts (struct btrace_target_info* tinfo, const uint8_t *begin, > gdb_assert (start <= end); > > /* The first block ends at the current pc. */ > -#ifdef GDBSERVER > - regcache = get_thread_regcache (find_thread_ptid (tinfo->ptid), 1); > -#else > - regcache = get_thread_regcache (tinfo->ptid); > -#endif > + regcache = get_thread_regcache_for_ptid (tinfo->ptid); > block.end = regcache_read_pc (regcache); > > /* The buffer may contain a partial record as its last entry (i.e. when the > diff --git a/gdb/regcache.c b/gdb/regcache.c > index f410dc2..2ffc121 100644 > --- a/gdb/regcache.c > +++ b/gdb/regcache.c > @@ -28,6 +28,7 @@ > #include "exceptions.h" > #include "remote.h" > #include "valprint.h" > +#include "common-regcache.h" > > /* > * DATA STRUCTURE > @@ -535,6 +536,13 @@ get_current_regcache (void) > return get_thread_regcache (inferior_ptid); > } > > +/* See common/linux-btrace.h. */ Similarly, common/common-regcache.h. > + > +struct regcache * > +get_thread_regcache_for_ptid (ptid_t ptid) > +{ > + return get_thread_regcache (ptid); > +} > > /* Observer for the target_changed event. */ > > -- > 1.7.1 > Ok with those nits fixed.