From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wmauth4.doit.wisc.edu (wmauth4.doit.wisc.edu [144.92.197.145]) by sourceware.org (Postfix) with ESMTPS id 80E9F3840C33 for ; Tue, 9 Jun 2020 16:38:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 80E9F3840C33 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-sn1nam04lp2053.outbound.protection.outlook.com [104.47.44.53]) by smtpauth4.wiscmail.wisc.edu (Oracle Communications Messaging Server 8.0.2.4.20190812 64bit (built Aug 12 2019)) with ESMTPS id <0QBO01UM23KSIW80@smtpauth4.wiscmail.wisc.edu> for elfutils-devel@sourceware.org; Tue, 09 Jun 2020 11:38:53 -0500 (CDT) X-Wisc-Env-From-B64: ZGFyb2NoYXBpbmhlQHdpc2MuZWR1 X-Spam-PmxInfo: Server=avs-4, Version=6.4.7.2805085, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2020.6.9.163018, AntiVirus-Engine: 5.74.0, AntiVirus-Data: 2020.5.21.5740001, SenderIP=[104.47.44.53] ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YQbFvB2gH0t6wlAifPD4J8XsXcMfwcTmD7mVRKUf27+Cf/edL6foZwWDrRIFuva2wZ1Qokx1YMvHHQNLNwnjnJNo3YY53+cYDRDGaNPsyQpJr09CZciVFHpKFkXyyz4WdrEAbWgBf7dIwHRDW3oqPbJQqQVscIC02RRDmm/unSLgrw1ybyqKhDauW4rTiZv7Wubju2w1YaLZpCxWOuV7oTEsX4GX1hI8u7C05FhvpQukKDg6VB4hMHWp8QEcH0VyZFMOAyhVx77K1IVN9M7UMl02L+TaYdNr0QtpKLc6mgEdJnsDiS1xFnoC59huUHtiG7O9d+1AVC4GRga55Uujnw== 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=j13rs3HHhZ6mWAHTREJTM2SQctda6hnAZYkroYbkZhI=; b=RXt8SJWpX3feyK/VkIOPsPX4Vf2EhLl6GLNj+wrXLWZ+SUXTC/lfIkE/NGoFi45jBio+BIBvA0vwnxv8lPhnOfizSbuC6WM+coTM2yAsRkUCLOfvMSNgnonSICWp9sqh3YGSJGSxs5yf3dCHR1ppQypmQVh/MJAwNqv467slWH+RHSrHELjA5X+u6TVdG0cL2lptIqSsW0ibFN+8crmVEhi+rcgFq8SSXcLnhRlW3SI6YvPreC/6i+MSQvWKg/Dox8nc51paAeGNF8BQm7S9zAVV0oIgcTvzJ4/cndU3Q5ra//72El7YYHgJRwhv6wZOvN1Uq7LdhrWIohh1OZbtKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wisc.edu; dmarc=pass action=none header.from=wisc.edu; dkim=pass header.d=wisc.edu; arc=none Received: from DM5PR06MB3115.namprd06.prod.outlook.com (2603:10b6:4:42::37) by DM5PR06MB2954.namprd06.prod.outlook.com (2603:10b6:3:11c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Tue, 9 Jun 2020 16:38:51 +0000 Received: from DM5PR06MB3115.namprd06.prod.outlook.com ([fe80::6081:d9ec:42a5:ce54]) by DM5PR06MB3115.namprd06.prod.outlook.com ([fe80::6081:d9ec:42a5:ce54%6]) with mapi id 15.20.3066.023; Tue, 9 Jun 2020 16:38:51 +0000 From: Sasha Da Rocha Pinheiro To: Mark Wielaard , "elfutils-devel@sourceware.org" Subject: Re: location list Thread-topic: location list Thread-index: AQHWOOe462cU6I0Nz02M96DfbJ8gBKjFkjiAgAAM3+uABSA4hoAA5eKAgATdyFQ= Date: Tue, 9 Jun 2020 16:38:51 +0000 Message-id: References: , In-reply-to: Accept-Language: en-US, pt-BR Content-language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: X-Originating-IP: [71.90.118.165] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 5dfab52a-7e8c-4dbf-7c8a-08d80c93979e x-ms-traffictypediagnostic: DM5PR06MB2954: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 042957ACD7 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ght55ZklajHOducnC+iYyJbacczuQWyzAfMzEfBjmHiOO49LBHvJX3SSrmmWPkeCePjofF2e01qNeQPoWRCMWsH5UGyrTEwjz+ya/1N0WG1Y0npeZ5ee04eDJmh4vmZDBUU6BxRbqy7GqIGaM/p6/HkIP5WOWGL8wFgv7f/2G+uIPqka0MyAPBhqPNy3yghPHAaoJ0v2vacV7JoMC8v35WpnDgNDrraDCwvVxPb1kIZrEqaVNsGZhShvlQdBz5vB3tTJRhk21lpI01ubvN4yqdIzY2Yq/KB1iephZwR3uWMQfnEYRPHu1JNW97MmdeZeXzh7QnJUW+Xi8P5QADdYVjThuGwonE+FJiWSxegcVv0wwuETAQHZqroQmaDA2aXy X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR06MB3115.namprd06.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(39860400002)(136003)(346002)(366004)(396003)(376002)(71200400001)(7116003)(52536014)(26005)(6506007)(75432002)(7696005)(86362001)(8676002)(8936002)(3480700007)(33656002)(53546011)(66446008)(64756008)(9686003)(55016002)(186003)(66476007)(66556008)(786003)(316002)(5660300002)(66946007)(2906002)(91956017)(110136005)(478600001)(76116006)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: C1aU6d3BqraV2h4JX/ZG6CNUnNQOTY5oIgZYZoU3gom000E7jRq8VpwNkU6HSe5b0mJbI5Vac25AZpzlLYkSRQ7+U0Wcjo4jRcRnBl1UcRBPSBkY1aUEUuu0vlU3ERZe3FoH1S8XyRj1ynpBeMBMt6MspUhlhYYQ+ZWkjnpJuUk11Vs7YkhbjUngHQ4t4eeDBA0Ie6DrcDtot3Pd4LmUSAVbeDoPv2VyOUNMT72/lOG+RWGI+XkobJF6dNmmpH2AC+xH3w0QcZWo5Q56BTAJ0iCyUV7xr6qppPBSbpJQsEcW4QjhTCXjC6MEvgQyVB89PwHhu5newB0bEXBdJyl/OgrDd6FOsWgfGCVfOJBXxG11sj+Zl6cKrWE5p5qNWiNWXgDmuKVdF4QS07fhFHF/lrKaKTW2KjBxk3P55MG2I3bFykSVUqF4UQXk3BlXMHBF8g5TZ9V9NrSYkG2DqlOkMPu+SRu7P5ZkXCZ4Pu8p6+M= x-ms-exchange-transport-forked: True Content-type: text/plain; charset="iso-8859-1" Content-transfer-encoding: quoted-printable MIME-version: 1.0 X-OriginatorOrg: wisc.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 5dfab52a-7e8c-4dbf-7c8a-08d80c93979e X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2020 16:38:51.5137 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 2ca68321-0eda-4908-88b2-424a8cb4b0f9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xnNw4qHGvDK3FwMdEiSnXyHRCeVHKX4QgbIwsrjZ9Owh6hGPeaBMWmiI9YAXbgehtoaPB1RMmLTaa67dGh5PSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR06MB2954 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2020 16:38:55 -0000 Hi Mark,=0A= =0A= first of all, thanks for giving me a direction here.=0A= =0A= I am now trying to design the changes needed to be done in Dyninst.=0A= So far we have only used the functions dwarf_* under libdw.=0A= What I understood is that libdw is kinda divided in subsets of functions, d= warf_*, dwfl_* and dwelf_*.=0A= I didn't find any documentation about it, or the purpose of these subset of= functions. (Whats fl in dwfl for?)=0A= But my understanding is that I can't use data structures from one on the ot= her one.=0A= That alone will need some design to modify the way we parse dwarf info into= Dyninst.=0A= Currently the lifetime of a dwarf handle lasts through one execution, becau= se we parse dwarf data when the user needs it.=0A= =0A= Can you point me to more documentation here or schedule a call so I can get= a more clear view of this?=0A= =0A= Regards,=0A= Sasha=0A= =0A= =0A= =0A= From: Mark Wielaard =0A= Sent: Saturday, June 6, 2020 9:05 AM=0A= To: Sasha Da Rocha Pinheiro ; elfutils-devel@sourcew= are.org =0A= Subject: Re: location list =0A= =A0=0A= Hi Sasha,=0A= =0A= On Sat, 2020-06-06 at 00:30 +0000, Sasha Da Rocha Pinheiro wrote:=0A= > As you can see the following variables have distinct locations:=0A= >=A0 [=A0=A0=A0 81]=A0=A0=A0=A0=A0 variable=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 abbrev: 5=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 name=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 (string) "a"=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_file=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (data1) sasha.c (1)=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_line=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (data1) 12=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 type=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 (ref4) [=A0=A0=A0 cd]=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 location=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 (sec_offset) location list=0A= > [=A0=A0=A0=A0 0]=0A= >=A0 [=A0=A0=A0 9f]=A0=A0=A0=A0=A0=A0=A0 variable=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 abbrev: 5=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 name=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (string) "g"=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_file=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (data1) sasha.c (1)=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_line=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (data1) 15=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 type=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (ref4) [=A0=A0=A0 cd]=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 location=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 (sec_offset) location list=0A= > [=A0=A0=A0 4a]=0A= > [=A0=A0=A0 bd]=A0=A0=A0=A0=A0=A0=A0=A0=A0 variable=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 abbrev: 5=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 name=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (string) "z"=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_file=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 (data1) sasha.c (1)=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 decl_line=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 (data1) 16=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 type=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (ref4) [=A0=A0=A0 cd]=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 location=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (sec_offset) location list=0A= > [=A0=A0=A0 6e]=0A= > =0A= > But when I use the code I sent before to list the three variables, I=0A= > always get:=0A= > =0A= > [main01.cpp:73] - Variable and location found (a), size(1).=0A= > [main01.cpp:78] - interval: (0x0,0x5) =0A= > [main01.cpp:78] - interval: (0x5,0xa) =0A= > [main01.cpp:78] - interval: (0x16,0x24) =0A= > [main01.cpp:73] - Variable and location found (g), size(1).=0A= > [main01.cpp:78] - interval: (0x0,0x5) =0A= > [main01.cpp:78] - interval: (0x5,0xa) =0A= > [main01.cpp:78] - interval: (0x16,0x24) =0A= > [main01.cpp:73] - Variable and location found (z), size(1).=0A= > [main01.cpp:78] - interval: (0x0,0x5) =0A= > [main01.cpp:78] - interval: (0x5,0xa) =0A= > [main01.cpp:78] - interval: (0x16,0x24) =0A= > =0A= > =0A= > No matter the locationAttribute the code always get the first=0A= > location descriptors in .debug_loc: =0A= >=A0 =0A= > DWARF section [ 7] '.debug_loc' at offset 0x1c6:=0A= > =0A= >=A0 CU [=A0=A0=A0=A0 b] base: .text+000000000000000000
=0A= >=A0 [=A0=A0=A0=A0 0] range 0, 5=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+000000000000000000
..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000004 =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] lit0=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 1] stack_value=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 range 5, a=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000005 ..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000009 =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] reg1=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 range 16, 24=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000016 ..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000023 =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] reg1=0A= >=A0 [=A0=A0=A0 4a] range 0, 5=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+000000000000000000
..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000004 =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] lit0=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 1] stack_value=0A= >=A0 [=A0=A0=A0 6e] range 5, a=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000005 ..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x0000000000000009 =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] lit0=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 1] stack_value=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 range a, e=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x000000000000000a ..=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .text+0x000000000000000d =0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 0] const4u 65537=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 5] breg0 0=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 7] minus=0A= >=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [ 8] stack_value=0A= =0A= I think I see what is happening. The fact that
is at=0A= .text+000000000000000000 suggests that this is actually an ET_REL file=0A= (not linked object file). The libdw dwarf_xxx calls don't do=0A= relocations. But eu-readelf does. So while eu-readelf shows some=0A= offsets as their relocated values, your program just using dwarf_xxx=0A= calls does not. Specifically the DW_AT_location list attributes will=0A= all point to zero. Which explains why every location list seems to be=0A= the same.=0A= =0A= We don't have a public function to just apply all relocations to an=0A= object file, but opening the file through dwfl_begin () will do it.=0A= =0A= Something like the attached.=0A= =0A= Hope that helps,=0A= =0A= Mark=