This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Find tailcall frames before inline frames
- From: Luis Machado <luis dot machado at linaro dot org>
- To: Tom Tromey <tromey at adacore dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 5 Mar 2020 07:21:27 -0300
- Subject: Re: [PATCH] Find tailcall frames before inline frames
- References: <20200220155820.22809-1-tromey@adacore.com> <87sgip6rk9.fsf@tromey.com>
Hi Tom,
On 3/3/20 6:45 PM, Tom Tromey wrote:
Tom> gdb/ChangeLog
Tom> 2020-02-20 Tom Tromey <tromey@adacore.com>
Tom> * dwarf2/frame.c (struct dwarf2_frame_cache)
Tom> <checked_tailcall_bottom, entry_cfa_sp_offset,
Tom> entry_cfa_sp_offset_p> : Remove members.
Tom> (dwarf2_frame_cache): Call dwarf2_tailcall_sniffer_first.
Tom> (dwarf2_frame_prev_register): Don't call
Tom> dwarf2_tailcall_sniffer_first.
Tom> (dwarf2_append_unwinders): Don't append tailcall unwinder.
Tom> * frame-unwind.c (add_unwinder): New fuction.
Tom> (frame_unwind_init): Use it. Add tailcall unwinder.
I'm going to check this in now.
Tom
This has caused quite a few failures in the following tests for
aarch64-linux:
gdb.opt/inline-break.exp
gdb.opt/inline-cmds.exp
gdb.python/py-frame-inline.exp
gdb.reverse/insn-reverse.exp
I see the following:
info frame^M
../../../repos/binutils-gdb/gdb/frame.c:579: internal-error: frame_id
get_frame_id(frame_info*): Assertion `fi->level == 0' failed.^M
A problem internal to GDB has been detected,^M
further debugging may prove unreliable.^M
Quit this debugging session? (y or n) FAIL:
gdb.python/py-frame-inline.exp: info frame (GDB internal error)
Resyncing due to internal error.
n^M
^M
This is a bug, please report it. For instructions, see:^M
<http://www.gnu.org/software/gdb/bugs/>.^M
(gdb) up^M
../../../repos/binutils-gdb/gdb/inline-frame.c:172: internal-error: void
inline_frame_this_id(frame_info*, void**, frame_id*): Assertion
`frame_id_p (*this_id)' failed.^M
A problem internal to GDB has been detected,^M
further debugging may prove unreliable.^M
Quit this debugging session? (y or n) FAIL:
gdb.python/py-frame-inline.exp: up (GDB internal error)
Resyncing due to internal error.
n^M
^M
This is a bug, please report it. For instructions, see:^M
<http://www.gnu.org/software/gdb/bugs/>.^M
I can help get more information on it if you need.