Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Call i386_frame_p() only for 32bits
@ 2003-03-21 10:08 Michal Ludvig
  2003-03-21 11:05 ` Mark Kettenis
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Ludvig @ 2003-03-21 10:08 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: Mark Kettenis, gdb

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?

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Call i386_frame_p() only for 32bits
  2003-03-21 10:08 Call i386_frame_p() only for 32bits Michal Ludvig
@ 2003-03-21 11:05 ` Mark Kettenis
  2003-03-21 11:35   ` Michal Ludvig
  0 siblings, 1 reply; 3+ messages in thread
From: Mark Kettenis @ 2003-03-21 11:05 UTC (permalink / raw)
  To: mludvig; +Cc: ac131313, gdb

   Date: Fri, 21 Mar 2003 11:08:35 +0100
   From: Michal Ludvig <mludvig@suse.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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Call i386_frame_p() only for 32bits
  2003-03-21 11:05 ` Mark Kettenis
@ 2003-03-21 11:35   ` Michal Ludvig
  0 siblings, 0 replies; 3+ messages in thread
From: Michal Ludvig @ 2003-03-21 11:35 UTC (permalink / raw)
  To: Mark Kettenis; +Cc: gdb

Mark Kettenis wrote:
>    Date: Fri, 21 Mar 2003 11:08:35 +0100
>    From: Michal Ludvig <mludvig@suse.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@suse.cz
* (+420) 296.545.373 * http://www.suse.cz


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-03-21 11:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-21 10:08 Call i386_frame_p() only for 32bits Michal Ludvig
2003-03-21 11:05 ` Mark Kettenis
2003-03-21 11:35   ` Michal Ludvig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox