From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12885 invoked by alias); 9 Aug 2019 14:46:44 -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 12876 invoked by uid 89); 9 Aug 2019 14:46:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: EUR04-DB3-obe.outbound.protection.outlook.com Received: from mail-eopbgr60047.outbound.protection.outlook.com (HELO EUR04-DB3-obe.outbound.protection.outlook.com) (40.107.6.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Aug 2019 14:46:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TRw1ytLybkIgyBP8MLB6mOKNm94MYZAAPtr76nPzcTo=; b=VcoE9mrGmdYS4ISRtaxUvMS4cca87j6YC0O7u+1nVKtiuudkOH2hq8ERpGeiXPgpFXn1fQZpAy7ZG6sruO0HG60h14Dq/idvVtH477iK66ExEsqS2udwlxdjhjgd9r30W7/kZFzAYmpwxhv6xE/2A16o+Q5UZtExrbGqsbr7FWo= Received: from VI1PR0802CA0048.eurprd08.prod.outlook.com (2603:10a6:800:a9::34) by VE1PR08MB4959.eurprd08.prod.outlook.com (2603:10a6:803:110::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.16; Fri, 9 Aug 2019 14:46:37 +0000 Received: from AM5EUR03FT018.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::204) by VI1PR0802CA0048.outlook.office365.com (2603:10a6:800:a9::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.14 via Frontend Transport; Fri, 9 Aug 2019 14:46:37 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT018.mail.protection.outlook.com (10.152.16.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2052.18 via Frontend Transport; Fri, 9 Aug 2019 14:46:35 +0000 Received: ("Tessian outbound cc8a947d4660:v26"); Fri, 09 Aug 2019 14:46:35 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 24f282fb26f48138 X-CR-MTA-TID: 64aa7808 Received: from 9feba4f82d27.1 (cr-mta-lb-1.cr-mta-net [104.47.10.51]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2EEE8219-DDFC-47C0-8162-88BFB1D83B1A.1; Fri, 09 Aug 2019 14:46:30 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03lp2051.outbound.protection.outlook.com [104.47.10.51]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9feba4f82d27.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384); Fri, 09 Aug 2019 14:46:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvcrQio+9locak+gUzB+x926YBu0klClFm10Ez1fWqXLaStwKHoRR/2ZcySOGxYxTIGodZE8C3BSzQdGUrk5zdiFE4CCHDRJN5IEfWYzC6qfYboOPJdoFm0zkH9M9rDvYeZtVMNXVmJtLixDJWO1FHMifs060mEKAGKKDvLlebQ3LQtnTt8dbEh7McEdGrwcbKjFKaIg2ZR+o4Z7ndwSnY8s8cLpyd+mWmFZjh0QpnLVnZagf7vt8NhCmNDz7I0q2oy8FgLc0ZpdjhXFN7n2y/LX15VZ9/nLmRooR5Ng/1WDadNU+5KK+Enaq9oeuBY3uXoES311eKEpHnT1GcCGPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TRw1ytLybkIgyBP8MLB6mOKNm94MYZAAPtr76nPzcTo=; b=nCHAki+5GJSuPnDQxbZe5rAolHjoFqhbhrVx8Gl7RuIPfZ57GB3O4jZd3wAdY+UnInwhKtWllDQsyX5prqHREnO7TTPbzV/32j9f9gHfxuxbtqEXtKZ+icoNA75LbUEinVLFy66fWS1GolWZa40VlAxHweol5RH4O8Dx6chNhAD1q+UOyEMsn3wxVsTDwqQGqGxQA/lDWpetIegGW4yEBLFT5se+/TExFKXxrEhuh3dyzEbIC0m1GkTbI6FWFKcF/A/Km2092iFgtK1eHFWJyQBTe1wmOHbx/UdasxG6iMyVpBr8So6JjzCEOK7fL6r0cXcRwbHaFCuF7kFinxW9ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TRw1ytLybkIgyBP8MLB6mOKNm94MYZAAPtr76nPzcTo=; b=VcoE9mrGmdYS4ISRtaxUvMS4cca87j6YC0O7u+1nVKtiuudkOH2hq8ERpGeiXPgpFXn1fQZpAy7ZG6sruO0HG60h14Dq/idvVtH477iK66ExEsqS2udwlxdjhjgd9r30W7/kZFzAYmpwxhv6xE/2A16o+Q5UZtExrbGqsbr7FWo= Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.227.22) by DB6PR0802MB2600.eurprd08.prod.outlook.com (10.172.251.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.20; Fri, 9 Aug 2019 14:46:29 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::5ce5:cf42:42dd:eda1]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::5ce5:cf42:42dd:eda1%6]) with mapi id 15.20.2157.020; Fri, 9 Aug 2019 14:46:29 +0000 From: Alan Hayward To: Pedro Alves CC: Tom Tromey , "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH V2] AArch64 pauth: Indicate unmasked addresses in backtrace Date: Fri, 09 Aug 2019 14:46:00 -0000 Message-ID: <714091D9-B336-4D9C-9238-2DBC10B2E030@arm.com> References: <20190730144123.11135-1-alan.hayward@arm.com> <728af5fa-8e3d-845c-d72f-60b1d2067643@redhat.com> <474e8e87-50d4-874f-787f-ef5f5fbb6cc3@redhat.com> <955aee56-6b01-47f6-6870-8d561a2083fc@redhat.com> In-Reply-To: <955aee56-6b01-47f6-6870-8d561a2083fc@redhat.com> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; X-Microsoft-Antispam-Untrusted: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:DB6PR0802MB2600; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(376002)(366004)(396003)(346002)(39860400002)(136003)(189003)(199004)(6246003)(478600001)(53936002)(33656002)(6436002)(7736002)(5660300002)(14454004)(36756003)(4326008)(99286004)(229853002)(76116006)(91956017)(25786009)(6512007)(66556008)(8676002)(3846002)(26005)(256004)(76176011)(66446008)(6916009)(6116002)(486006)(54906003)(66476007)(57306001)(81156014)(81166006)(64756008)(316002)(305945005)(6486002)(446003)(66946007)(66066001)(102836004)(6506007)(8936002)(86362001)(186003)(53546011)(71190400001)(71200400001)(2906002)(2616005)(11346002)(476003)(50226002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2600;H:DB6PR0802MB2133.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: E04Mcw8B4avaNnXVDmhYu+4xK1D4Je+NJxCpS/+Qm+LwoMqhDD9NDfE3kapIjL5lYKjJKxG8eZOMqvevW1mXa0KBK80Yv+qIconQToTvHpyLnS253WGYjhkKIJ67ag1uGlS0/dt4eqIPUr2GcKEZGpL6mVdt8rRLUfIeEwi4AKHLh1Iv6DZCf1AIjBH9zQ8tDrxXY6I5eCmXxmR9s0KlSlb6Yt1peGgDTsxVfPZwO81stZl7qCY2IAJnAwbrag6YHu5iEBqngJmLYlKrShdVcIa9mXt2uwHgeqZxNQ/9jKXtJWqbudtLpV/SQ6Apj91Wy7rLqwNTf4bENH2+PJCPrAQLa6aSA3kb0hgLtIDW6I6wwpK3MZnQB/k4ondRj0TzX39w2VH2bQ0VmmF5H0fvSMmD0ABnLOh7u5qZ4a53A1U= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <934C94B3B5289545AAD1DBCE28321635@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Return-Path: Alan.Hayward@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 8e1a132e-c707-40bc-1aaa-08d71cd85cb4 X-IsSubscribed: yes X-SW-Source: 2019-08/txt/msg00225.txt.bz2 DQoNCj4gT24gOSBBdWcgMjAxOSwgYXQgMTU6MTcsIFBlZHJvIEFsdmVzIDxw YWx2ZXNAcmVkaGF0LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiA4LzkvMTkgMjoy MiBQTSwgQWxhbiBIYXl3YXJkIHdyb3RlOg0KPj4gSXQgbG9va3MgbGlrZSBm aXhpbmcgdGhlIHNwYWNlIGp1c3QgcmVxdWlyZXMgYW4gYWRkaXRpb25hbCBj YWxsIHRvIHVpb3V0LT50ZXh0ICgiIOKAnCkuDQo+PiANCj4+IA0KPj4gSG93 IGFib3V0IEkgY3JlYXRlIGEgbmV3IGZpZWxkIGFkZHJfZmxhZ3M/IEl0IHdv dWxkIGJlIGEgZ2VuZXJpYyBmaWVsZCBpbnRvIHdoaWNoDQo+PiB0YXJnZXRz IGNhbiBhZGQgd2hpY2hldmVyIGZpZWxkcyB0aGV5IHdhbnQgdG8uDQo+PiAN Cj4+IEkgdGhlbiBjb3VsZCBhZGQgYSBjYWxsIHRvIGEgbmV3IGZ1bmN0aW9u IGdkYmFyY2hfcHJpbnRfYWRkcl9mbGFncygpIHdoaWNoIHByaW50cyB0aGUN Cj4+IFBBQyBvbiBBQXJjaDY0IGFuZCBub3RoaW5nIG9uIGFsbCBvdGhlciB0 YXJnZXRzPw0KPiANCj4gVGhhdCBzb3VuZHMgbGlrZSB0d28gZGlmZmVyZW50 IHRoaW5ncy4gIFlvdSBjb3VsZCBoYXZlIHRoZSBnZGJhcmNoIG1ldGhvZCB3 aXRob3V0DQo+IHRoZSB1aW91dCBmaWVsZC4gIE5vdCBzdXJlIHdoYXQgdGhl IHVpb3V0IGZpZWxkIGJ1eXMgeW91LiAgSWYgQ0xJIGFuZCBNSSBhcmUgZ29p bmcgdG8NCj4gcHJpbnQgdGhlIHNhbWUgd2F5LCB0aGVuIGl0IGRvZXNuJ3Qg YXBwZWFyIHVzZWZ1bCBvdmVyIGZpZWxkX3N0cmluZy4gIFRoZSBnZGJhcmNo DQo+IG1ldGhvZCBzb3VuZHMgZmluZS4NCj4gDQoNCkkgd2FzIHRoaW5raW5n IG9mIHRoZSBmb2xsb3dpbmc6DQoNCmNoYXIgKmZsYWdzID0gZ2RiYXJjaF9w cmludF9wY19hZGRyX2ZsYWdzKGZyYW1lLCBwYyk7ICAvKiBSZXR1cm5zIG51 bGwgb3Ig4oCcUEFD4oCdIG9yIOKAnEZPTyxCQVLigJ0gZXRjICovDQppZiAo ZmxhZ3MpDQp7DQogIHVpb3V0LT50ZXh0ICjigJwgW+KAnCk7DQogIHVpb3V0 LT5maWVsZF9zdHJpbmcgKOKAnGFkZHJfZmxhZ3MiLCBmbGFncyk7DQogIHVp b3V0LT50ZXh0ICjigJxd4oCcKTsNCn0NCg0KYWRkcl9mbGFncyBjYW4gYmUg cHJpbnRlZCBieSBhbnkgdGFyZ2V0IHRoYXQgd2lzaGVzLiBBbmQgUEFDIG9u bHkgbmVlZHMgdG8gYmUgaW4NCkFBcmNoNjQgc3BlY2lmaWNzLg0KDQoNCg0K QWxhbi4= >From gdb-patches-return-158089-listarch-gdb-patches=sources.redhat.com@sourceware.org Fri Aug 09 15:03:17 2019 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 42553 invoked by alias); 9 Aug 2019 15:03:17 -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 Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 42545 invoked by uid 89); 9 Aug 2019 15:03:17 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy=belonging X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Aug 2019 15:03:15 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 4E332B008; Fri, 9 Aug 2019 15:03:13 +0000 (UTC) Subject: Re: [PATCH][gdb] Fix gdb.arch/amd64-tailcall-*.exp with -fPIE/-pie To: Pedro Alves , gdb-patches@sourceware.org Cc: Jan Kratochvil References: <20190809104848.GA6563@delia> <57ada901-a8d8-b632-f7d8-e42283314b5a@redhat.com> From: Tom de Vries Openpgp: preference=signencrypt Message-ID: <38825791-ad92-3f7e-d3ae-2ac123dd6422@suse.de> Date: Fri, 09 Aug 2019 15:03:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <57ada901-a8d8-b632-f7d8-e42283314b5a@redhat.com> Content-Type: multipart/mixed; boundary="------------E8AD83E0419AFD5579AC97EE" X-IsSubscribed: yes X-SW-Source: 2019-08/txt/msg00226.txt.bz2 This is a multi-part message in MIME format. --------------E8AD83E0419AFD5579AC97EE Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 1917 On 09-08-19 15:57, Pedro Alves wrote: > On 8/9/19 11:48 AM, Tom de Vries wrote: >> @@ -240,14 +242,38 @@ pretend_pc (struct frame_info *this_frame, struct tailcall_cache *cache) >> gdb_assert (next_levels >= 0); >> >> if (next_levels < chain->callees) >> - return chain->call_site[chain->length - next_levels - 1]->pc; >> + { >> + struct call_site *call_site >> + = chain->call_site[chain->length - next_levels - 1]; >> + CORE_ADDR addr = call_site->pc; >> + struct dwarf2_per_objfile *dwarf2_per_objfile >> + = call_site->per_cu->dwarf2_per_objfile; >> + struct objfile *objfile = dwarf2_per_objfile->objfile; >> + CORE_ADDR baseaddr >> + = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); >> + struct gdbarch *gdbarch = get_objfile_arch (objfile); >> + addr = gdbarch_adjust_dwarf2_addr (gdbarch, addr + baseaddr); >> + return addr; >> + } >> next_levels -= chain->callees; >> >> /* Otherwise CHAIN->CALLEES are already covered by CHAIN->CALLERS. */ >> if (chain->callees != chain->length) >> { >> if (next_levels < chain->callers) >> - return chain->call_site[chain->callers - next_levels - 1]->pc; >> + { >> + struct call_site *call_site >> + = chain->call_site[chain->callers - next_levels - 1]; >> + CORE_ADDR addr = call_site->pc; >> + struct dwarf2_per_objfile *dwarf2_per_objfile >> + = call_site->per_cu->dwarf2_per_objfile; >> + struct objfile *objfile = dwarf2_per_objfile->objfile; >> + CORE_ADDR baseaddr >> + = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); >> + struct gdbarch *gdbarch = get_objfile_arch (objfile); >> + addr = gdbarch_adjust_dwarf2_addr (gdbarch, addr + baseaddr); >> + return addr; >> + } > > It seems like there's a repeated pattern here. How about > factoring out the common code to a function? Indeed. How about this? Thanks, - Tom --------------E8AD83E0419AFD5579AC97EE Content-Type: text/x-patch; name="0001-gdb-Fix-gdb.arch-amd64-tailcall-.exp-with-fPIE-pie.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename*0="0001-gdb-Fix-gdb.arch-amd64-tailcall-.exp-with-fPIE-pie.patc"; filename*1="h" Content-length: 3393 [gdb] Fix gdb.arch/amd64-tailcall-*.exp with -fPIE/-pie When running gdb.arch/amd64-tailcall-*.exp with target board unix/-fPIE/-pie, we get: ... FAIL: gdb.arch/amd64-tailcall-cxx.exp: bt FAIL: gdb.arch/amd64-tailcall-noret.exp: bt FAIL: gdb.arch/amd64-tailcall-self.exp: bt ... The first FAIL in more detail, compared to a nopie run: ... (gdb) bt #0 b () -#1 0x00000000004004df in a (q=) +#1 0x0000000000000672 in ?? () -#2 0x00000000004003d5 in main (argc=, argv=) +#2 0x0000555555554535 in main (argc=, argv=) -(gdb) PASS: gdb.arch/amd64-tailcall-self.exp: bt +(gdb) FAIL: gdb.arch/amd64-tailcall-self.exp: bt ... shows an unrelocated address for function a. The problem is that pretend_pc uses the pc field from a struct call_site without adding the missing relocation offset. Fix this by adding the appropriate offset. Tested on x86_64-linux, with and without -fPIE/-pie. gdb/ChangeLog: 2019-08-09 Tom de Vries * dwarf2-frame-tailcall.c (relocate_text_addr): New function. (pretend_pc): Add relocation offset to pc field of struct call_site. --- gdb/dwarf2-frame-tailcall.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/gdb/dwarf2-frame-tailcall.c b/gdb/dwarf2-frame-tailcall.c index e8f5aaf9c7..2cd2d532f9 100644 --- a/gdb/dwarf2-frame-tailcall.c +++ b/gdb/dwarf2-frame-tailcall.c @@ -29,6 +29,8 @@ #include "value.h" #include "dwarf2-frame.h" #include "gdbarch.h" +#include "dwarf2read.h" +#include "objfiles.h" /* Contains struct tailcall_cache indexed by next_bottom_frame. */ static htab_t cache_htab; @@ -225,6 +227,19 @@ tailcall_frame_this_id (struct frame_info *this_frame, void **this_cache, gdb_assert ((*this_id).artificial_depth > 0); } +/* Given an unrelocated address ADDR belonging to the text section of OBJFILE, + return the relocated address. */ + +static CORE_ADDR +relocate_text_addr (CORE_ADDR addr, struct objfile *objfile) +{ + CORE_ADDR baseaddr + = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); + struct gdbarch *gdbarch = get_objfile_arch (objfile); + addr = gdbarch_adjust_dwarf2_addr (gdbarch, addr + baseaddr); + return addr; +} + /* Find PC to be unwound from THIS_FRAME. THIS_FRAME must be a part of CACHE. */ @@ -240,14 +255,25 @@ pretend_pc (struct frame_info *this_frame, struct tailcall_cache *cache) gdb_assert (next_levels >= 0); if (next_levels < chain->callees) - return chain->call_site[chain->length - next_levels - 1]->pc; + { + struct call_site *call_site + = chain->call_site[chain->length - next_levels - 1]; + struct objfile *objfile = call_site->per_cu->dwarf2_per_objfile->objfile; + return relocate_text_addr (call_site->pc, objfile); + } next_levels -= chain->callees; /* Otherwise CHAIN->CALLEES are already covered by CHAIN->CALLERS. */ if (chain->callees != chain->length) { if (next_levels < chain->callers) - return chain->call_site[chain->callers - next_levels - 1]->pc; + { + struct call_site *call_site + = chain->call_site[chain->callers - next_levels - 1]; + struct objfile *objfile + = call_site->per_cu->dwarf2_per_objfile->objfile; + return relocate_text_addr (call_site->pc, objfile); + } next_levels -= chain->callers; } --------------E8AD83E0419AFD5579AC97EE--