binutils-gdb/gdb/python
Jan Kratochvil 111c64899c gdb/
Recognize virtual tail call frames.
	* Makefile.in (SFILES): Add dwarf2-frame-tailcall.c.
	(HFILES_NO_SRCDIR): Add dwarf2-frame-tailcall.h.
	(COMMON_OBS): Add dwarf2-frame-tailcall.o.
	* dwarf2-frame-tailcall.c: New file.
	* dwarf2-frame-tailcall.h: New file.
	* dwarf2-frame.c: Include dwarf2-frame-tailcall.h.
	(execute_cfa_program): New function comment.  Return INSN_PTR.  Reset
	REGS.PREV only after CIE execution.
	(struct dwarf2_frame_cache): New field tailcall_cache.
	(dwarf2_frame_cache): New variables entry_pc, entry_cfa_sp_offset,
	entry_cfa_sp_offset_p and instr.  Execute FDE instructions in two
	parts, try to find entry_cfa_sp_offset.  Call
	dwarf2_tailcall_sniffer_first.
	(dwarf2_frame_prev_register): Call dwarf2_tailcall_prev_register_first
	when appropriate.
	(dwarf2_frame_dealloc_cache): New function.
	(dwarf2_frame_sniffer): Preinitialize cache by dwarf2_frame_cache.
	(dwarf2_frame_unwind): Install dwarf2_frame_dealloc_cache.
	(dwarf2_signal_frame_unwind): Do not install dwarf2_frame_dealloc_cache.
	(dwarf2_append_unwinders): Add dwarf2_tailcall_frame_unwind.
	(dwarf2_frame_cfa): Support also dwarf2_tailcall_frame_unwind.
	* dwarf2loc.c (func_addr_to_tail_call_list)
	(tailcall_dump, call_sitep, VEC (call_sitep), chain_candidate)
	(call_site_find_chain_1, call_site_find_chain): New.
	* dwarf2loc.h (struct call_site_chain): New.
	(call_site_find_chain): New declaration.
	* frame.c (get_frame_address_in_block): Support also TAILCALL_FRAME.
	* frame.h (enum frame_type): New entry TAILCALL_FRAME.
	* python/py-frame.c (gdbpy_initialize_frames): Add TAILCALL_FRAME.
	* stack.c (frame_info): Support also TAILCALL_FRAME.

gdb/doc/
	Recognize virtual tail call frames.
	* gdb.texinfo (Optimized Code): Add reference to Tail Call Frames.
	(Tail Call Frames): New node.
	(Frames In Python): Add gdb.TAILCALL_FRAME.

gdb/testsuite/
	Recognize virtual tail call frames.
	* gdb.arch/amd64-entry-value.cc (c, a, b, amb_z, amb_y, amb_x, amb)
	(amb_b, amb_a): New.
	(main): Call a and b.
	* gdb.arch/amd64-entry-value.exp (tailcall: breakhere, tailcall: bt)
	(tailcall: p i, tailcall: p j, set $sp0=$sp, up, p $sp0 == $sp, frame 3)
	(p $sp0 + sizeof (void *) == $sp, ambiguous: breakhere, ambiguous: bt):
	New tests.
2011-10-09 19:26:44 +00:00
..
lib/gdb * python/lib/gdb/printing.py (register_pretty_printer): New argument 2011-10-07 22:46:15 +00:00
py-auto-load.c * python/py-auto-load.c (source_section_scripts): Fix file 2011-09-19 19:01:40 +00:00
py-block.c 2011-03-17 Phil Muldoon <pmuldoon@redhat.com> 2011-03-17 09:36:17 +00:00
py-bpevent.c 2011-09-15 Kevin Pouget <kevin.pouget@st.com> 2011-09-15 12:27:20 +00:00
py-breakpoint.c * python/py-breakpoint.c (gdbpy_initialize_breakpoints): Move the 2011-08-05 14:24:10 +00:00
py-cmd.c * python/py-cmd.c (gdbpy_string_to_argv): Decrement reference 2011-09-15 18:33:15 +00:00
py-continueevent.c Add the file that prev commit forget. 2011-02-05 05:27:23 +00:00
py-event.c Add the file that prev commit forget. 2011-02-05 05:27:23 +00:00
py-event.h Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
py-events.h Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
py-evtregistry.c 2011-06-16 Tristan Gingold <gingold@adacore.com> 2011-06-16 05:54:09 +00:00
py-evts.c Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
py-exitedevent.c 2011-10-04 Kevin Pouget <kevin.pouget@st.com> 2011-10-04 08:04:13 +00:00
py-frame.c gdb/ 2011-10-09 19:26:44 +00:00
py-function.c * python/py-breakpoint.c (gdbpy_initialize_breakpoints): Move the 2011-08-05 14:24:10 +00:00
py-inferior.c Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
py-infthread.c 2011-07-11 Phil Muldoon <pmuldoon@redhat.com> 2011-07-11 12:10:19 +00:00
py-lazy-string.c * python/python.c (gdbpy_solib_name): Use gdb_py_longest and 2011-01-26 20:53:45 +00:00
py-newobjfileevent.c Add missing files to previous commit (Allow Python notification of new object-file loadings.) 2011-10-07 08:39:57 +00:00
py-objfile.c 2011-03-17 Phil Muldoon <pmuldoon@redhat.com> 2011-03-17 09:36:17 +00:00
py-param.c * py-cmd.c: Some minor formatting fixes. 2011-09-08 19:51:27 +00:00
py-prettyprint.c * varobj.c (update_dynamic_varobj_children): Make 'name' const. 2011-06-24 19:47:37 +00:00
py-progspace.c 2011-01-05 Michael Snyder <msnyder@vmware.com> 2011-01-06 00:57:05 +00:00
py-signalevent.c Add the file that prev commit forget. 2011-02-05 05:27:23 +00:00
py-stopevent.c 2011-09-15 Kevin Pouget <kevin.pouget@st.com> 2011-09-15 12:27:20 +00:00
py-stopevent.h 2011-09-15 Kevin Pouget <kevin.pouget@st.com> 2011-09-15 12:27:20 +00:00
py-symbol.c * NEWS: Mention new "type" attribute of python gdb.Symbol objects. 2011-08-12 22:21:57 +00:00
py-symtab.c 2011-03-17 Phil Muldoon <pmuldoon@redhat.com> 2011-03-17 09:36:17 +00:00
py-threadevent.c Add the file that prev commit forget. 2011-02-05 05:27:23 +00:00
py-type.c gdb/ 2011-10-09 19:21:39 +00:00
py-utils.c 2011-02-28 Michael Snyder <msnyder@vmware.com> 2011-03-01 19:00:16 +00:00
py-value.c * python/py-value.c (valpy_call): Initialize ftype to avoid compiler 2011-10-07 22:02:42 +00:00
python-config.py allow building GDB with Python support on MinGW 2011-01-31 04:42:08 +00:00
python-internal.h Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
python.c Allow Python notification of new object-file loadings. 2011-10-07 07:38:30 +00:00
python.h 2011-03-14 Phil Muldoon <pmuldoon@redhat.com> 2011-03-14 16:09:55 +00:00