diff -urpN gdb-6.7-orig/gdb/regcache.c gdb-6.7/gdb/regcache.c --- gdb-6.7-orig/gdb/regcache.c 2008-03-03 19:30:54.000000000 +0100 +++ gdb-6.7/gdb/regcache.c 2008-03-03 20:30:10.000000000 +0100 @@ -172,11 +172,18 @@ register_size (struct gdbarch *gdbarch, { struct regcache_descr *descr = regcache_descr (gdbarch); int size; - gdb_assert (regnum >= 0 - && regnum < (gdbarch_num_regs (gdbarch) - + gdbarch_num_pseudo_regs (gdbarch))); - size = descr->sizeof_register[regnum]; - return size; + + + if (regnum >= 0 + && regnum < (gdbarch_num_regs (gdbarch) + + gdbarch_num_pseudo_regs (gdbarch))) + { + size = descr->sizeof_register[regnum]; + return size; + } + + internal_error (__FILE__, __LINE__, _("invalid register %d"), regnum); + return 0; } /* The register cache for storing raw register values. */