On Thu, May 25, 2006, Daniel Jacobowitz wrote:
> On Thu, May 25, 2006 at 05:50:56PM -0700, Tony Lin wrote:
>
> [2.4]
>
> > /*
> > * saved cp0 registers
> > */
> > unsigned long cp0_epc;
> > unsigned long cp0_badvaddr;
> > unsigned long cp0_status;
> > unsigned long cp0_cause;
>
> [2.6]
>
> > /* Saved special registers. */
> > unsigned long cp0_status;
> > unsigned long lo;
> > unsigned long hi;
> > unsigned long cp0_badvaddr;
> > unsigned long cp0_cause;
> > unsigned long cp0_epc;
>
> > Notice how the offsets has changed, no idea why this was done. I
> > loaded the core file in the hex dump, and sure enough it is dumped
> > with this new ordering.
> >
> > I guess gdb is still trying to decode using the old pt_regs format. Is
> > it correct to modify gdb to use this new format? Or modify linux to
> > output using the old format?
BTW, buildroot has a 400-mips-coredump.patch-2.4.23-29 patch.
http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/gdb/
However, I've built a toolchain using gcc-3.4.4, uClibc 0.9.27-cvs,
gdb 6.3, kernel 2.6.13, and I had to build without the
buildroot 400-mips-coredump.patch-2.4.23-29 patch. Without
it my gdb can read coredumps without problems.
Johannes
|