This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Call i386_frame_p() only for 32bits


Mark Kettenis wrote:
   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.

That's the problem - untill x86-64 is completely prepared for this new stuff, i386_frame_p always overrides the older behaviour.


Michal Ludvig
--
* SuSE CR, s.r.o     * mludvig at suse dot cz
* (+420) 296.545.373 * http://www.suse.cz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]