diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2016-05-31 09:03:15 +0200 |
---|---|---|
committer | Markus Metzger <markus.t.metzger@intel.com> | 2016-06-01 11:14:02 +0200 |
commit | e3b5daf9f735999259c5a8f68b422850c59897e5 (patch) | |
tree | 240a55afba83e89b38678d33373d27d9c8920be0 /gdb/annotate.h | |
parent | 03d73f1fd9d89d89bdd021cad26693e4f6abc07a (diff) | |
download | binutils-e3b5daf9f735999259c5a8f68b422850c59897e5.zip binutils-e3b5daf9f735999259c5a8f68b422850c59897e5.tar.gz binutils-e3b5daf9f735999259c5a8f68b422850c59897e5.tar.bz2 |
infcmd, btrace: fix crash in 'finish' for tailcall-only frames
Patch 7eb895307f53 Skip unwritable frames in command "finish"
skips non-writable frames in addition to tailcall frames.
If skip_tailcall_frames already returns NULL, skip_unwritable_frames
will be called with a NULL frame and crash in get_frame_arch. This is
caught by gdb.btrace/tailcall-only.exp.
Further, if we ever end up with a mixture of tailcall and non-writable
frames, we may not skip all of them, as intended.
Loop over skip_tailcall_frames and skip_unwritable_frames as long as at least
one of them makes progress.
gdb/
* infcmd.c (skip_finish_frames): New.
(finish_command): Call skip_finish_frames.
Diffstat (limited to 'gdb/annotate.h')
0 files changed, 0 insertions, 0 deletions