From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 119019 invoked by alias); 9 May 2017 12:50:47 -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 119006 invoked by uid 89); 9 May 2017 12:50:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS,SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy=HX-PHP-Originating-Script:rcube.php, guys X-HELO: simark.ca Received: from simark.ca (HELO simark.ca) (158.69.221.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 09 May 2017 12:50:44 +0000 Received: by simark.ca (Postfix, from userid 33) id C6CA31E4A4; Tue, 9 May 2017 08:50:45 -0400 (EDT) To: Tim Wiederhake Subject: Re: [PATCH v3 04/12] btrace: Use function segment index in call iterator. X-PHP-Originating-Script: 33:rcube.php MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 09 May 2017 12:50:00 -0000 From: Simon Marchi Cc: gdb-patches@sourceware.org, markus.t.metzger@intel.com In-Reply-To: <1494312929-22749-5-git-send-email-tim.wiederhake@intel.com> References: <1494312929-22749-1-git-send-email-tim.wiederhake@intel.com> <1494312929-22749-5-git-send-email-tim.wiederhake@intel.com> Message-ID: <41edfcfb42636c7888cdc4660696f593@polymtl.ca> X-Sender: simon.marchi@polymtl.ca User-Agent: Roundcube Webmail/1.2.5 X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg00209.txt.bz2 On 2017-05-09 02:55, Tim Wiederhake wrote: > Remove FUNCTION pointer in struct btrace_call_iterator and use an index > into > the list of function segments instead. > > 2017-05-09 Tim Wiederhake > > gdb/ChangeLog: > > * btrace.c (btrace_ends_with_single_insn): New function. > (btrace_call_get, btrace_call_number, btrace_call_begin, > btrace_call_end, btrace_call_next, btrace_call_prev, > btrace_find_call_by_number): Use index into call segment vector > instead of pointer. > (btrace_call_cmp): Simplify. > * btrace.h (struct btrace_call_iterator): Replace function call > segment > pointer with index into vector. > * record-btrace.c (record_btrace_call_history): Use index instead of > pointer. > > --- > gdb/btrace.c | 198 > ++++++++++++++++++++++------------------------------ > gdb/btrace.h | 5 +- > gdb/record-btrace.c | 2 +- > 3 files changed, 87 insertions(+), 118 deletions(-) > > diff --git a/gdb/btrace.c b/gdb/btrace.c > index c2d3730..5615aad 100644 > --- a/gdb/btrace.c > +++ b/gdb/btrace.c > @@ -2527,12 +2527,33 @@ btrace_find_insn_by_number (struct > btrace_insn_iterator *it, > return 1; > } > > +/* Returns a non-zero value if the recording ends with a function > segment that > + contains only a single (i.e. the current) instruction. */ > + > +static int bool? Otherwise, it LGTM. I'm not familiar with the btrace specific computations, but it made sense to me. I trust that you guys know what you are doing and have tested it enough :). If I understand correctly, btrace_function::number is 1-based? If so, it would be good to mention it somewhere (if it's not already, but I couldn't find it). Thanks, Simon