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. Thanks for all your help! - Tony