This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch 04/12] entryval: Virtual tail call frames
- From: Tom Tromey <tromey at redhat dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 19 Jul 2011 08:43:10 -0600
- Subject: Re: [patch 04/12] entryval: Virtual tail call frames
- References: <20110718201658.GE30496@host1.jankratochvil.net>
>>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
Jan> + Copyright (C) 2010, 2011 Free Software Foundation, Inc.
Diligent work! Also I wanted to say that I think this series is
excellent, and I am really glad I picked the easier DWARF extensions ;-)
Jan> +/* Associated structure of the unwinder for call_site_chain. */
Jan> +
Jan> +struct tailcall_cache
Jan> +{
Jan> + /* It must be the first one of this struct. It is the furthest callee. */
Jan> + struct frame_info *next_bottom_frame;
It was not obvious to me that the caching all works out correctly so
that it is ok to use a frame_info instead of a frame ID here. I take
your word for it, of course, but a comment about how one would recognize
the correctness of this code would have been helpful.
Jan> +++ b/gdb/dwarf2-frame-tailcall.h
Should go in HFILES_NO_SRCDIR.
Jan> +/* Cleanup helper to free VEC (call_sitep) **. */
Jan> +
Jan> +static void
Jan> +free_call_sitep_vecp (void *arg)
You can delete this function and just use 'VEC_cleanup (call_sitep)'.
Jan> + add_setshow_zinteger_cmd ("tailcall", class_maintenance,
Jan> + &tailcall_debug,
Jan> + _("Set tail call frames debugging."),
Jan> + _("Show tail call frames debugging."),
Jan> + _("When non-zero, the process of determining tail "
Jan> + "call frames will be printed. You may also want "
Jan> + "to `set verbose 1' for more info."),
Jan> + NULL,
Jan> + show_tailcall_debug,
Jan> + &setdebuglist, &showdebuglist);
Needs a doc patch. (If it is in another patch in the series, ignore
this; I'm working through the patches in order.)
Jan> + /* A virtual frame of a tail call - see dwarf2_tailcall_frame_unwind. */
Jan> + TAILCALL_FRAME,
This needs a Python API update and a corresponding doc patch.
Tom