On Fri, May 26, 2006, Tony Lin wrote: > Finally found the place in gdb to change the register values to read > the coredump correctly. However I have a nagging feeling that I may > not have configured gdb correctly , and my fix may not be the right > one. But oh wells, at least it works! > > cross-compiled on: i386-linux > configured gdb using: ../gdb/configure --target=mips-linux > gdb-6.4, kernel 2.6.6-rc3, gcc-3.4.3 > > *** mips-linux-tdep.c 2006-05-26 17:14:00.577339000 -0700 > --- mips-linux.tdep.c~ 2006-05-26 17:15:53.723372000 -0700 > *************** > *** 54,65 **** > --- 54,76 ---- > + > + /* NEW 2.6 style */ > + #define EF_CP0_STATUS 38 > + #define EF_LO 39 > + #define EF_HI 40 > + #define EF_CP0_BADVADDR 41 > + #define EF_CP0_CAUSE 42 > + #define EF_CP0_EPC 43 > + > + /* OLD 2.4 style > #define EF_LO 38 > #define EF_HI 39 > #define EF_CP0_EPC 40 > #define EF_CP0_BADVADDR 41 > #define EF_CP0_STATUS 42 > #define EF_CP0_CAUSE 43 > + */ > > Is it possible that since I cross-compiled gdb on an i386, it used the > local gcc/libc to compile and didn't have the right registers header > file? I know during configuration it was complaining that it didn't > find greg_t definitions etc. I suppose this why you guys can compile > it correctly on the native mips-linux while I have issues > cross-compiling on i386-linux. Maybe the change to the coredump format was reverted in later 2.6 kernels. If so, Ralf might remember. Johannes