This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Call i386_frame_p() only for 32bits
- From: Mark Kettenis <kettenis at chello dot nl>
- To: mludvig at suse dot cz
- Cc: ac131313 at redhat dot com, gdb at sources dot redhat dot com
- Date: Fri, 21 Mar 2003 12:05:21 +0100 (CET)
- Subject: Re: Call i386_frame_p() only for 32bits
- References: <3E7AE4A3.60601@suse.cz>
Date: Fri, 21 Mar 2003 11:08:35 +0100
From: Michal Ludvig <mludvig at suse dot cz>
Hi all,
I have this problem with i386newframe-branch on x86-64:
In i386-tdep.c:i386_gdbarch_init() there is always called the line
frame_unwind_append_predicate (gdbarch, i386_frame_p);
regardless if the inferior is 32b or 64b (of course, it isn't yet known
at this time). This is obviously wrong, because what i386_frame_p()
gives out doesn't make sense for 64b processes.
How can I achieve that i386_frame_p() is registered only for 32b
processes and x86_64_frame_p() only for 64b ones?
The code is laid out in such a way that if you call
frame_unwind_append_preducte (gdbarch, x86_64_frame_p)
in your x86_64-specific init_abi functions, and make sure you never
return NULL, GDB should never use the 32-bit i386 unwinder.
Mark