* 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