From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13240 invoked by alias); 27 Aug 2014 10:34:11 -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 13221 invoked by uid 89); 27 Aug 2014 10:34:10 -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,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 27 Aug 2014 10:34:09 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7RAY27t032414 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 27 Aug 2014 06:34:04 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s7RAY06r005251; Wed, 27 Aug 2014 06:34:01 -0400 Message-ID: <53FDB418.70407@redhat.com> Date: Wed, 27 Aug 2014 10:34:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0 MIME-Version: 1.0 To: Omair Javaid , gdb-patches@sourceware.org CC: patches@linaro.org Subject: Re: [PATCH v3 6/6] Fix reverse-step and reverse-next over undebuggable solib code References: <1407935535-27978-1-git-send-email-omair.javaid@linaro.org> <1407935535-27978-7-git-send-email-omair.javaid@linaro.org> In-Reply-To: <1407935535-27978-7-git-send-email-omair.javaid@linaro.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-08/txt/msg00562.txt.bz2 (This patch doesn't look specific to ARM, and thus could/should be split out from the rest of the series.) On 08/13/2014 02:12 PM, Omair Javaid wrote: > This patch fixes failures to reverse-step or reverse-next over solib functions in absence of line information. Could you describe the failure a little more please? What happens instead? > The problem is fixed by making sure that in solib functions we keep doing reverse single stepping in absence of line information. > > Tested with no regressions on arm, aarch64 and x86_64. Is there a test in the testsuite that fails before this patch? If not, could you add one? There's another similarly looking piece of code above with the same comment: "Reverse stepping through solib trampolines that I'm wondering whether it needs treatment as well. Thanks! > > gdb: > > 2014-08-13 Omair Javaid > > * infrun.c (process_event_stop_test): Updated. Same remark as previous patches here. > > --- > gdb/infrun.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/gdb/infrun.c b/gdb/infrun.c > index c18267f..db8f15b 100644 > --- a/gdb/infrun.c > +++ b/gdb/infrun.c > @@ -4905,12 +4905,15 @@ process_event_stop_test (struct execution_control_state *ecs) > return; > } > > + stop_pc_sal = find_pc_line (stop_pc, 0); > + > /* Reverse stepping through solib trampolines. */ > > if (execution_direction == EXEC_REVERSE > && ecs->event_thread->control.step_over_calls != STEP_OVER_NONE) > { > if (gdbarch_skip_trampoline_code (gdbarch, frame, stop_pc) > + || stop_pc_sal.line == 0 > || (ecs->stop_func_start == 0 > && in_solib_dynsym_resolve_code (stop_pc))) > { > @@ -4939,8 +4942,6 @@ process_event_stop_test (struct execution_control_state *ecs) > } > } > > - stop_pc_sal = find_pc_line (stop_pc, 0); > - > /* NOTE: tausq/2004-05-24: This if block used to be done before all > the trampoline processing logic, however, there are some trampolines > that have no names, so we should do trampoline handling first. */ > Thanks, Pedro Alves