This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [i386newframe/PATCH] New i386newframe branch
- From: Mark Kettenis <kettenis at chello dot nl>
- To: ac131313 at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 1 May 2003 20:39:25 +0200 (CEST)
- Subject: Re: [i386newframe/PATCH] New i386newframe branch
- References: <200304191651.h3JGp1Kr004648@elgar.kettenis.dyndns.org> <3EADA9AC.8030607@redhat.com>
Date: Mon, 28 Apr 2003 18:22:36 -0400
From: Andrew Cagney <ac131313@redhat.com>
> +static int
> +i386_frameless_function_invocation (struct frame_info *frame)
> {
I'd consider deleting it.
For non legacy architectures, apart from appending "(FRAMELESS)" to the
output of "info frame", that architecture method does nothing useful
(and even this is marginal :-). I think a per frame
PRINT_EXTRA_FRAME_INFO like function would be more useful.
Alternatively, a per-frame ``frameless'' attribute could be added.
Sounds good to me!
> +const struct frame_unwind *
> +i386_frame_p (CORE_ADDR pc)
> +{
> + char *name;
> +
> + find_pc_partial_function (pc, &name, NULL, NULL);
> + if (PC_IN_SIGTRAMP (pc, name))
> + return &i386_sigtramp_frame_unwind;
The intent was for there to be one predicate function per unwinder. So
the below would be in a separate unwinder, registered separatly.
And you want me to set the right example :-). No problem.
> + return &i386_frame_unwind;
> +}
Have you tried adding just the sigtramp unwinder? I should get just
that addition debugged regardless - it should make migrating other ISAs
easier.
No I haven't. I don't think I can. The problem is that I simplified
the sigtramp unwinder a bit. However in order to do so, I need to be
able to trust the normal unwinder to unwind the stack pointer
correctly. Unfortunately the current code is a bit sloppy about this.
Mark