[PATCH] Find tailcall frames before inline frames

Luis Machado luis.machado@linaro.org
Thu Mar 5 10:21:00 GMT 2020


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.



More information about the Gdb-patches mailing list