From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id CED1B39450C2; Mon, 6 Apr 2020 14:55:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CED1B39450C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1586184928; bh=iV4fgmkW9ioPSS5pMkqA9kaFrscT8ezdQgJb66626QY=; h=From:To:Subject:Date:From; b=yD1SaPZO0eYTbJz5s2QqQI+X0UMXwVVS18jgAedpqqjj/QKGgXPwtzL6xuSRrqGSU dPNtxEgextes2FkCvTKam9indEPrrPcLTNrOHghdO5tnTFlMoaopOBm3BMNolIgPgK +qQ9zKj1HFclcMkC7XszAed83uhZWsVftDdvOucA= From: "luis.machado at linaro dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug debug/94502] New: [aarch64] Missing LR register location in FDE Date: Mon, 06 Apr 2020 14:55:28 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: debug X-Bugzilla-Version: 10.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: luis.machado at linaro dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2020 14:55:28 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D94502 Bug ID: 94502 Summary: [aarch64] Missing LR register location in FDE Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: luis.machado at linaro dot org Target Milestone: --- I've noticed this while investigating a GDB testsuite failure in gdb.opt/inline-break.exp. Basically GDB runs into an internal error due to = not being able to unwind the PC register (which, in turn, requires the LR register). I originally noticed this with Ubuntu's GCC (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1). But i managed to reproduce the same problem with g= cc master at revision c72a1b6f8b26de37d1a922a8af143af009747498. Reproduction steps: 1 - Build the test like so: gcc -g3 /gdb/testsuite/gdb.opt/inline-break/inline-break.c -o inline-break 2 - readelf -w inline-break > inline-break.dwarf 3 - Take note of the low address of function not_inline_func1 4 - Locate the FDE entry for the PC above. 5 - You'll notice there is no rule to locate LR, which is required by GDB to determine PC. This is the FDE entry i see: 00000108 0000000000000014 0000010c FDE cie=3D00000000 pc=3D0000000000400674..00000000004006b0 DW_CFA_advance_loc: 4 to 0000000000400678 DW_CFA_def_cfa_offset: 32 DW_CFA_advance_loc: 52 to 00000000004006ac DW_CFA_def_cfa_offset: 0 DW_CFA_nop=