PR 14119
	* frame.c (skip_inlined_frames): Skip also TAILCALL_FRAME frames.
	(frame_pop): Drop also TAILCALL_FRAME frames.
	* infcmd.c (finish_command): Ignore also TAILCALL_FRAME frames.

gdb/testsuite/
	PR 14119
	* gdb.arch/amd64-tailcall-ret.S: New file.
	* gdb.arch/amd64-tailcall-ret.c: New file.
	* gdb.arch/amd64-tailcall-ret.exp: New file.
	* gdb.reverse/amd64-tailcall-reverse.S: New file.
	* gdb.reverse/amd64-tailcall-reverse.c: New file.
	* gdb.reverse/amd64-tailcall-reverse.exp: New file.
This commit is contained in:
Jan Kratochvil
2012-09-17 07:15:48 +00:00
parent acf9414f48
commit 1ab3b62c9d
10 changed files with 910 additions and 1 deletions

View File

@@ -1777,6 +1777,11 @@ finish_command (char *arg, int from_tty)
return;
}
/* Ignore TAILCALL_FRAME type frames, they were executed already before
entering THISFRAME. */
while (get_frame_type (frame) == TAILCALL_FRAME)
frame = get_prev_frame (frame);
/* Find the function we will return from. */
function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));