From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60817 invoked by alias); 8 Dec 2017 09:44:33 -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 58440 invoked by uid 89); 8 Dec 2017 09:44:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=sal, H*r:sk:static. X-HELO: mail-wr0-f180.google.com Received: from mail-wr0-f180.google.com (HELO mail-wr0-f180.google.com) (209.85.128.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 08 Dec 2017 09:44:31 +0000 Received: by mail-wr0-f180.google.com with SMTP id a41so10227209wra.6 for ; Fri, 08 Dec 2017 01:44:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=hGiILdCGEgefaWK1bcNJddqg2BvANStEzLx7fv8q824=; b=g3Ro1Hxoz0FD4Lp7fL70nKRwOtHp7ugz55PzfUK0O+wNBY3I7paaHHotRDpXEqSkZp Q1RWM973uHJaMlnW0RP2/zc3/V11KyVrVR6rKAzPVFld06PhrY5qIcAPTDGTnY7lJf5L RpyxzIBvnTL/BMISkPsCWSos0EETwnEc8aLZa05RqDQTwCG2IBmhgUsk0zg85olazjt9 Rl53dEbsCSGrzW36SNvI0TQLU63fOtumKitQnpT9MU/WxNjKtICjd4boaFA887YJynC4 +6Zu18/w36Fx/Ft9pxC5l467FAqhTj4vXEHLWHex9BqU5GCBbD/yDcf7kGCnBCT7Lm5E WBfA== X-Gm-Message-State: AJaThX6ho3eWralB4WbNyXw1Ms2Xuhf9fkmnlE5M9XyPULKo1BWNDH9N ufImgOjJXO/BqXvZXLOlnCrmRg== X-Google-Smtp-Source: AGs4zMYvkOkP8aPiSNCye2aSyKvYi4tzzoEl2Dm/O+RypyE7xAtFyL46pGLPzCgKjwpmWupNNvKrzg== X-Received: by 10.223.190.134 with SMTP id i6mr25804485wrh.177.1512726269041; Fri, 08 Dec 2017 01:44:29 -0800 (PST) Received: from E107787-LIN (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id g7sm9272048wra.38.2017.12.08.01.44.26 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Fri, 08 Dec 2017 01:44:28 -0800 (PST) From: Yao Qi To: Pedro Alves Cc: Ulrich Weigand , Jan Kratochvil , Simon Marchi , Keith Seitz , gdb-patches@sourceware.org Subject: Re: [PATCH] Fix setting-breakpoints regression on PPC64 (function descriptors) References: <20171126163756.1515ED802F9@oc3748833570.ibm.com> <0bea6805-b8eb-da2c-07f6-0f1ee917c7b5@redhat.com> Date: Fri, 08 Dec 2017 09:44:00 -0000 In-Reply-To: <0bea6805-b8eb-da2c-07f6-0f1ee917c7b5@redhat.com> (Pedro Alves's message of "Wed, 29 Nov 2017 19:07:54 +0000") Message-ID: <867etxpn9k.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2017-12/txt/msg00158.txt.bz2 Pedro Alves writes: > @@ -4309,22 +4309,16 @@ minsym_found (struct linespec_state *self, struct= objfile *objfile, > struct minimal_symbol *msymbol, > std::vector *result) > { > - struct gdbarch *gdbarch =3D get_objfile_arch (objfile); > - CORE_ADDR pc; > struct symtab_and_line sal; >=20=20 > - if (msymbol_is_text (msymbol)) > - { > - sal =3D find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (objfile, msymbol= ), > - (struct obj_section *) 0, 0); > - sal.section =3D MSYMBOL_OBJ_SECTION (objfile, msymbol); This line is removed, so that sal.section can be null. It causes PR 22567. How is the patch below? > + /* The minimal symbol might point to a function descriptor, which is > + not a text symbol; try resolving it to the actual code > + address. */ >=20=20 > - /* The minimal symbol might point to a function descriptor; > - resolve it to the actual code address instead. */ > - pc =3D gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc, > - ¤t_target); > - if (pc !=3D sal.pc) > - sal =3D find_pc_sect_line (pc, NULL, 0); > + CORE_ADDR func_addr; > + if (msymbol_is_function (objfile, msymbol, &func_addr)) > + { > + sal =3D find_pc_sect_line (func_addr, NULL, 0); >=20=20 > if (self->funfirstline) > { --=20 Yao (=E9=BD=90=E5=B0=A7) =46rom b8e112071a75e7227dc3ee5f35cfa874f3b41da7 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Thu, 7 Dec 2017 16:53:13 +0000 Subject: [PATCH] Fix PR 22567: set SAL .section in minsym_found PR 22567 is that breakpoint location can't correct gdbarch from SAL, because its fields .section and .symtab is NULL. We use to have code setting .section, but was removed by 4024cf2 - if (msymbol_is_text (msymbol)) + CORE_ADDR func_addr; + if (msymbol_is_function (objfile, msymbol, &func_addr)) { - sal =3D find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (objfile, msymbol), - (struct obj_section *) 0, 0); - sal.section =3D MSYMBOL_OBJ_SECTION (objfile, msymbol); this patch adds this back by moving it to the common place at the bottom of the function. gdb: 2017-12-07 Yao Qi PR breakpionts/22567 * linespec.c (minsym_found): Set sal. objfile and section. diff --git a/gdb/linespec.c b/gdb/linespec.c index 09758762..8c36f2a 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -4365,9 +4365,10 @@ minsym_found (struct linespec_state *self, struct ob= jfile *objfile, sal.objfile =3D objfile; sal.pc =3D MSYMBOL_VALUE_ADDRESS (objfile, msymbol); sal.pspace =3D current_program_space; - sal.section =3D MSYMBOL_OBJ_SECTION (objfile, msymbol); } =20 + sal.section =3D MSYMBOL_OBJ_SECTION (objfile, msymbol); + if (maybe_add_address (self->addr_set, objfile->pspace, sal.pc)) add_sal_to_sals (self, result, &sal, MSYMBOL_NATURAL_NAME (msymbol), 0= ); }