From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15231 invoked by alias); 12 Feb 2019 01:15:52 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 15220 invoked by uid 89); 12 Feb 2019 01:15:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.9 required=5.0 tests=BAYES_00,GIT_PATCH_1,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=HContent-type:text, HContent-type:charset, HContent-type:plain, HContent-type:iso-8859-1 X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,GIT_PATCH_1,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: wmauth2.doit.wisc.edu Received: from wmauth2.doit.wisc.edu (HELO wmauth2.doit.wisc.edu) (144.92.197.222) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 12 Feb 2019 01:15:50 +0000 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03lp2052.outbound.protection.outlook.com [104.47.40.52]) by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 8.0.1.1.0 64bit (built Jun 15 2016)) with ESMTPS id <0PMS003GKGUAYDA0@smtpauth2.wiscmail.wisc.edu> for elfutils-devel@sourceware.org; Mon, 11 Feb 2019 19:15:48 -0600 (CST) X-Spam-Report: AuthenticatedSender=yes, SenderIP=[104.47.40.52] X-Wisc-Env-From-B64: ZGFyb2NoYXBpbmhlQHdpc2MuZWR1 X-Spam-PmxInfo: Server=avs-2, Version=6.4.3.2751440, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2019.2.12.10616, AntiVirus-Engine: 5.52.0, AntiVirus-Data: 2018.7.26.5520003, SenderIP=[104.47.40.52] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wisc.edu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gVUl0cJt+cGGZY9YGeK+pER+f9HBXL1DZJNsxYq3oa8=; b=FYZdly3enkDmuoYAF3NX5ys/GeUtHF0q54lQKwXzgtBQMSdqjoCnZGd90Pwg7INchgU+K/3PIwW0twoIf7goeIZOy9devU5mi8mw0UTuWOtb5pZkC2mTR5fcbAwVDzKMAA1osP4BU/gJA51y36NoGhOKXjGnFl8aeYLfQeEOZ5g= Received: from BN6PR06MB2932.namprd06.prod.outlook.com (10.175.131.151) by BN6PR06MB3553.namprd06.prod.outlook.com (10.174.95.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.22; Tue, 12 Feb 2019 01:15:46 +0000 Received: from BN6PR06MB2932.namprd06.prod.outlook.com ([fe80::c50f:3485:23e0:19f3]) by BN6PR06MB2932.namprd06.prod.outlook.com ([fe80::c50f:3485:23e0:19f3%8]) with mapi id 15.20.1601.023; Tue, 12 Feb 2019 01:15:46 +0000 From: Sasha Da Rocha Pinheiro To: "elfutils-devel@sourceware.org" , Mark Wielaard , Ben Woodard Subject: Re: unknown error after dwarf_cfi_addrframe() Thread-topic: unknown error after dwarf_cfi_addrframe() Thread-index: AQHUvzXfoiaPi3si0U60HQtBQvF9xKXbYJoV Date: Tue, 12 Feb 2019 01:15:00 -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: [128.105.14.107] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fd621120-0058-4e3b-dee5-08d690879db2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020);SRVR:BN6PR06MB3553; x-ms-traffictypediagnostic: BN6PR06MB3553: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;BN6PR06MB3553;23:znLCvZtDSqx8QOCqrQodAPhRSTN1lpsUH9V9nzP?= =?iso-8859-1?Q?EBiBxUgFOf0h5G/ZE9Dh8YhFnCrc3iiMw/TddUEPwDwy65c1B8dsFbRNF2?= =?iso-8859-1?Q?GdeyOUv0+prPiBtUAerEQbFW9FwfaVpFbHXIuutSAS7gEX4akhXP6TfWtP?= =?iso-8859-1?Q?ik2kp3WZ+5tN2FQamh1vKBF756s7nRJUz7nqHG0yTLoxhgRTn9JSPGRjba?= =?iso-8859-1?Q?6OpoxxC7KZ1pBAuWhGvZPau8UYTCNgSKiE78o2QXGmW8QP8tV3CU2/OgTj?= =?iso-8859-1?Q?nr2wqGSJqYfFQD5nnQUD1lsFjUwBqYBFv4SiME09MS7LuvFKCIemDXRPzh?= =?iso-8859-1?Q?A0gWBnQTTMqNEsKy4h+FHJNfgEQJbMFjQchnfoU2/drIQ8IlKjgfVPriPb?= =?iso-8859-1?Q?dG4OISn6oZCwYrjVeKDzpIfHXge1hbhs1BCt9kPHvwsRZDRjCk5OMt/Bx1?= =?iso-8859-1?Q?flS8hIHxb1Ecx+nTVK3E+EU6sBLc0DTYGZrVzcr+CUT8jWiQddGFOgrY3Q?= =?iso-8859-1?Q?rsjJC5/OjSshtQ+4eUhSshcuDzEB12mAaERUKRsq4q6bYTqdFS9CeRFopt?= =?iso-8859-1?Q?YcMqR/2g8rn2+I5puSetBivsy1YIvwKww2y18DFSgeRrOf9bi01JRRhQWG?= =?iso-8859-1?Q?8Dw6tXf/Fx6iwFNTvPZC70HNy3981G/9thOE1jOyD8QsmujIphx7ZFTcE7?= =?iso-8859-1?Q?h0D22MbDQnsvuGgwDw/dDvvgnelFVLI6FL1rDH8Q+WtoSVDpRs1JPU85Cj?= =?iso-8859-1?Q?mOrH3UifEdqwPBC8JYvQfoR2h5rLCY2g4D40L/iCK4/Z3X/nmhMBE7MZkc?= =?iso-8859-1?Q?nprobMiJ1pJvq31UbssKtZehizBX7b83EaNYHKbWJ5aByFiDjgpUx16+pZ?= =?iso-8859-1?Q?Nr7hwo1VSY+xLPGTjYLyA3qA0NRkPba5rvnMNa16AHVMxdWvh9rSDco7cz?= =?iso-8859-1?Q?JeauMwSKMOO4KbwYiiz0R9uuL/fuWLsP7MzhXot+ILQWzQuUjiVvwEBJMy?= =?iso-8859-1?Q?LwlPMMhx0QbaZFYaNWlK8eiE1cG8/3PipvTR3FCJ2re/n8XgwOMCkChs35?= =?iso-8859-1?Q?jHoe31fZZ4jcHe6RGjRwKbD2fJUbbNsadxV9Q9Q6eKb0Ov+UT2728duosn?= =?iso-8859-1?Q?xgRdnKPYbVoXhczdobSOMu92npR92VH+ZhzCRSVHz39T4NDEqunNd33AID?= =?iso-8859-1?Q?WOMmFU0bAq6s2p/3l4l8TkIjJ2x0jtK5v0QBCAgF9qRRJGm+KRt4ZGqlC2?= =?iso-8859-1?Q?ZsSqxavGUF8stfcqj3ahPPKZagdk8vrQBaBxyX/5EyHtyGcd/SNgRg75lY?= =?iso-8859-1?Q?BgMmrN3muVDGriloOJt95Z3QO+ZWo5R9O4VsAxmDZvdFbYIZgvWLzru6hr?= =?iso-8859-1?Q?gk8/48H8=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 0946DC87A1 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(346002)(366004)(39860400002)(376002)(396003)(53754006)(189003)(199004)(9686003)(55016002)(76176011)(229853002)(71190400001)(71200400001)(3846002)(6116002)(33656002)(81166006)(256004)(6436002)(8936002)(86362001)(53546011)(81156014)(88552002)(2906002)(5024004)(8676002)(14444005)(7696005)(75432002)(53936002)(6506007)(305945005)(74316002)(102836004)(7736002)(2501003)(6346003)(105586002)(478600001)(106356001)(66066001)(186003)(11346002)(476003)(486006)(446003)(25786009)(14454004)(26005)(99286004)(786003)(68736007)(97736004)(6246003)(110136005)(316002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR06MB3553;H:BN6PR06MB2932.namprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: wisc.edu does not designate permitted sender hosts) Authentication-results: spf=none (sender IP is ) smtp.mailfrom=darochapinhe@wisc.edu; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 2bdLNxMHyTAWXBvelmjhptAwB1O6cZWbvCaxM3WD8M0UU7wpNigaWUzDXNGwiuplqKgsp7Qqy1+TV2zuuLECoxDKTIsW4DAlmg/gYoGlbek31jmo6u7JzX0kx70d67cjn0/lDRb2yIGq9WHgGtgfkdpwDokGWddP4uTMPEB/p0lc8CHvQ+jLrRFh8tAK7DulsPT6FdNAJylj5D73FBeamAghI5MdBWnam5T6lt5rMQiLYcdRZWmgNP2COV5cV32UWVFAYQmaQGjv7nh3KoRiKEgYrgmm9FTIpbf8NfsXpe1GMwQIACYCDJIgkMT6jtHan3tpPVJwbVCrb947QAouO8deqERXRvEb32v227U42vklKsJiYjjYj/VNv4uGXE32v9i5vPIARVSBxh5a95n2BaUA342+uG0TFG1UBdE1ssU= 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: fd621120-0058-4e3b-dee5-08d690879db2 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2019 01:15:45.8412 (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-Transport-CrossTenantHeadersStamped: BN6PR06MB3553 X-SW-Source: 2019-q1/txt/msg00127.txt.bz2 I found that when libdw will try to get the base CFI from the ABI, the func= tion ebl_abi_cfi() ends calling default_abi_cfi() which returns -1, when s= hould be calling x86_64_abi_cfi(). In addition, the symbol x86_64_abi_cfi in the file libdw.so is not present,= but all the respective default_* ones are. It seems that the library is being compiled using BACKEND as default and no= t catching the correct architecture (?).=20 Sasha From: Sasha Da Rocha Pinheiro Sent: Thursday, February 7, 2019 4:57 PM To: elfutils-devel@sourceware.org; Mark Wielaard Subject: unknown error after dwarf_cfi_addrframe() =A0 Hi all, I'm trying to read frame info from .eh_frame section. But I'm getting "unkn= own error". I'll copy the snippet where I use libelf functions to print all sections of= the file and get the index of .eh_frame, to then use libdw to go through .= eh_frame Dwarf_CFI_Entry entries, to count them. The count matches was dwar= fdump from libdwarf prints out. I'll attach that too. Following I create a Dwarf_CFI and try to lock up an address with dwarf_cfi= _addrframe(). But got unknown error. I'll attach the binary too. As you can see in the GDB output below that I try to get frame info for the= address 0x40ae19, and the FDE with index 94 (see dwarfdump output) has add= resses of <0x0040ae19:0x0040aed3>. Regards, Sasha =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=A0 snippet for what I'm doing =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =A0=A0=A0=A0=A0=A0=A0 //testing printing count for CIE and FDE in this eh_f= rame=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 auto e_ident =3D elf_getident(dbg_eh_frame, NULL);=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 Elf_Scn *scn =3D NULL;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 Elf64_Shdr *shdr;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 char *section_name;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 size_t eh_frame_index =3D -1, shstrndx;=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 if(elf_getshdrstrndx(dbg_eh_frame, &shstrndx)!=3D0)= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stderr, "elf_getshdrstrndx() fail= ed: %s.", elf_errmsg(-1));=A0 =A0=A0=A0=A0=A0=A0=A0 while((scn =3D elf_nextscn(dbg_eh_frame,scn))!=3DNULL= )=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 {=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if((shdr =3D elf64_getshdr(scn))!=3Dshdr)= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stderr, "getshdr() fa= iled: %s.\n", elf_errmsg(-1));=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if((section_name =3D elf_strptr(dbg_eh_fr= ame, shstrndx, shdr->sh_name))=3D=3DNULL) =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stderr, "elf_strptr()= failed: %s.\n", elf_errmsg(-1));=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stderr, "Section [%d]: %s\n", elf= _ndxscn(scn), section_name); =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(strcmp(section_name, ".eh_frame")=3D= =3D0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 eh_frame_index =3D elf_ndxscn= (scn);=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 }=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 assert(eh_frame_index!=3D-1);=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 scn =3D elf_getscn(dbg_eh_frame,eh_frame_index);=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 fprintf( stderr, "elf_getscn() failed: %s.\n", elf_er= rmsg(-1));=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 auto eh_frame_data =3D elf_getdata(scn, NULL);=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 =A0=A0=A0=A0=A0=A0=A0 fprintf( stderr, "elf_getdata() failed: %s.\n", elf_e= rrmsg(-1));=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 assert(eh_frame_data!=3DNULL);=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 Dwarf_CFI_Entry entry;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 Dwarf_Off offset =3D 0, next_offset, saved_cur_offset= ;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 int res =3D 0, count_fde=3D0, count_cie=3D0;=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 do{=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 res =3D dwarf_next_cfi((const unsigned ch= ar *)e_ident, eh_frame_data,=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 true, offset, &ne= xt_offset, &entry);=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 saved_cur_offset =3D offset;=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 offset =3D next_offset;=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(res=3D=3D1 && next_offset=3D=3D(Dwarf_= Off)-1) break;=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(res =3D=3D -1) {=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (offset !=3D saved_cur_off= set) {=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stderr, "= dwarf_next_cfi() returns -1. Error: %s\n", dwarf_errmsg(-1)); =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 continue; // Soft= error, skip to the next CFI entry=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 // Since offset didn't advanc= e, we can't skip this CFI entry and need to quit =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 break;=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(dwarf_cfi_cie_p(&entry)) count_cie++;= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 else count_fde++;=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 }while(true);=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 cerr << "Count_cie: " << count_cie << endl;=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 =A0=A0=A0=A0=A0=A0=A0 cerr << "Count_fde: " << count_fde << endl;=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 Dwarf_CFI * cfi =3D nullptr;=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 cfi =3D dwarf_getcfi_elf(dbg_eh_frame);=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 if(!cfi) assert(false);=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 auto next_pc =3D range.first;=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 while(next_pc < range.second)=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0 {=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Dwarf_Frame * frame =3D NULL;=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int result =3D dwarf_cfi_addrframe(cfi, n= ext_pc, &frame);=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf( stderr, "dwarf_cfi_addrframe() f= ailed: %s.\n", dwarf_errmsg(-1)); =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(result=3D=3D-1) break;=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=A0 end of snippet =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D GDB output: Thread 1 "test_driver" hit Breakpoint 11, Dyninst::DwarfDyninst::DwarfFrame= Parser::getRegsForFunction ( =A0=A0=A0 this=3D0x1a70320, range=3D..., reg=3D..., locs=3Dstd::vector of l= ength 0, capacity 0, err_result=3D@0x7fffffffd3fc: 32767) =A0=A0=A0 at /...Parser.C:162 162=A0=A0=A0=A0 { (gdb) until 231 Section [1]: .interp Section [2]: .note.ABI-tag Section [3]: .note.gnu.build-id Section [4]: .gnu.hash Section [5]: .dynsym Section [6]: .dynstr Section [7]: .gnu.version Section [8]: .gnu.version_r Section [9]: .rela.dyn Section [10]: .rela.plt Section [11]: .init Section [12]: .plt Section [13]: .plt.got Section [14]: .text Section [15]: .fini Section [16]: .rodata Section [17]: .eh_frame_hdr Section [18]: .eh_frame Section [19]: .init_array Section [20]: .fini_array Section [21]: .jcr Section [22]: .dynamic Section [23]: .got Section [24]: .got.plt Section [25]: .data Section [26]: .bss Section [27]: .gnu_debuglink Section [28]: .shstrtab elf_getscn() failed: no error. elf_getdata() failed: no error. Count_cie: 2 Count_fde: 205 Dyninst::DwarfDyninst::DwarfFrameParser::getRegsForFunction (this=3D0x1a703= 20, range=3D..., reg=3D..., =A0=A0=A0 locs=3Dstd::vector of length 0, capacity 0, err_result=3D@0x7ffff= fffd3fc: Dyninst::DwarfDyninst::FE_No_Error) =A0=A0=A0 at /...Parser.C:231 231=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Dwarf_CFI * cfi =3D nullptr; (gdb) n 232=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 cfi =3D dwarf_getcfi_elf(dbg_eh_fra= me); (gdb) 233=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(!cfi) assert(false); (gdb) 235=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 auto next_pc =3D range.first; (gdb) 236=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 while(next_pc < range.second) (gdb) 238=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Dwarf_Frame * frame =3D= NULL; (gdb) 239=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int result =3D dwarf_cf= i_addrframe(cfi, next_pc, &frame); (gdb) 240=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf( stderr, "dwarf= _cfi_addrframe() failed: %s.\n", dwarf_errmsg(-1)); (gdb) dwarf_cfi_addrframe() failed: unknown error. 241=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if(result=3D=3D-1) brea= k; (gdb) p/x next_pc $73 =3D 0x40ae19