This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa] Add cross platform i386 corefile support
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 1 Aug 2003 12:32:21 -0400
- Subject: Re: [rfa] Add cross platform i386 corefile support
- References: <3F2A94B3.5080700@redhat.com>
On Fri, Aug 01, 2003 at 12:26:27PM -0400, Andrew Cagney wrote:
> Hello,
>
> The attached does to the i386 what MichaelL recently did to x86-64 -
> make the code that reads core files work cross platform.
>
> While this change is independant of the x86-64 change, it does work
> better when combined with that.
>
> i386 native showed no regressions. A cross GDB was able to read i386
> native generated core files.
>
> Please note that gcore doesn't work cross though - problems in
> linux-proc.c. I've filed a bug report.
>
> ok?
> 6.0?
I'm not sure how cross-safe this bit is:
> +static void
> +dummy_sse_values (void)
> +{
> + struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
> + /* C doesn't have a syntax for NaN's, so write it out as an array of
> + longs. */
> + static long dummy[4] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff };
> + static long mxcsr = 0x1f80;
> + int reg;
> +
> + for (reg = 0; reg < tdep->num_xmm_regs; reg++)
> + supply_register (XMM0_REGNUM + reg, (char *) dummy);
> + if (tdep->num_xmm_regs > 0)
> + supply_register (MXCSR_REGNUM, (char *) &mxcsr);
> +}
Won't work on a big-endian LP64 host. You've filled them with 0
instead of -1 if I remember my C promotions right.
Otherwise, I have some code to do the same thing, and it looks exactly
the same, which is a good sign :) I'm too backlogged waiting for
review of things I've already posted to realistically flush the rest of
my queue, so I'm glad to see someone else save me the trouble.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer