From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 38238 invoked by alias); 15 Mar 2018 11:36:43 -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 38218 invoked by uid 89); 15 Mar 2018 11:36:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,URIBL_SBL autolearn=ham version=3.3.2 spammy=D*ru, 15.03.2018, 15032018, H*x:5.0 X-HELO: forward104o.mail.yandex.net Received: from forward104o.mail.yandex.net (HELO forward104o.mail.yandex.net) (37.140.190.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 15 Mar 2018 11:36:40 +0000 Received: from mxback12j.mail.yandex.net (mxback12j.mail.yandex.net [IPv6:2a02:6b8:0:1619::87]) by forward104o.mail.yandex.net (Yandex) with ESMTP id 25EA9703510; Thu, 15 Mar 2018 14:36:38 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback12j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id Bb0ZUkOif6-abwepPjn; Thu, 15 Mar 2018 14:36:37 +0300 Received: by web37j.yandex.ru with HTTP; Thu, 15 Mar 2018 14:36:37 +0300 From: Vlad Ivanov To: Andreas Schwab Cc: "gdb-patches@sourceware.org" In-Reply-To: References: <20180315112111.15247-1-vlad.ivanov@lab-systems.ru> Subject: Re: [PATCH] gdbarch: Add pc_signed field and use it when adjusting BP addresses MIME-Version: 1.0 Message-Id: <830441521113797@web37j.yandex.ru> Date: Thu, 15 Mar 2018 11:36:00 -0000 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-SW-Source: 2018-03/txt/msg00294.txt.bz2 15.03.2018, 14:33, "Andreas Schwab" : > On Mär 15 2018, vlad.ivanov@lab-systems.ru wrote: > >>  diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c >>  index 454fda7684..247ec34857 100644 >>  --- a/gdb/breakpoint.c >>  +++ b/gdb/breakpoint.c >>  @@ -6999,7 +6999,10 @@ adjust_breakpoint_address (struct gdbarch *gdbarch, >>             adjusted_bpaddr = gdbarch_adjust_breakpoint_address (gdbarch, bpaddr); >>           } >> >>  - adjusted_bpaddr = address_significant (gdbarch, adjusted_bpaddr); >>  + /* Don't cut out "insignificant" address bits on targets with >>  + signed PC. */ >>  + if (!gdbarch_pc_signed (gdbarch)) >>  + adjusted_bpaddr = address_significant (gdbarch, adjusted_bpaddr); > > Shouldn't it be sign-extended instead? > > Andreas. > MIPS backend already returns a sign-extended value, and address_significant cuts out bits 63 to 32. This makes breakpoint address comparison in step routines to misbehave. Regards, Vlad