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


   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


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