PATCH: Don't display missing x86 registers in general group
H.J. Lu
hongjiu.lu@intel.com
Thu Apr 8 22:39:00 GMT 2010
Currently x86 gdb does
(gdb) maint print register-groups
Name Nr Rel Offset Size Type Groups
...
'' 41 41 308 0 int0_t general
'' 42 42 308 0 int0_t general
'' 43 43 308 0 int0_t general
'' 44 44 308 0 int0_t general
'' 45 45 308 0 int0_t general
'' 46 46 308 0 int0_t general
'' 47 47 308 0 int0_t general
'' 48 48 308 0 int0_t general
Those are ymm regiters, which don't exist on this machine. This
patch removes registers with empty name from general group. OK
to install?
Thanks.
H.J.
---
2010-04-08 H.J. Lu <hongjiu.lu@intel.com>
* i386-tdep.c (i386_register_reggroup_p): Return 0 if register
name is empty for general_reggroup.
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 22854bd..4a0be36 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -3029,12 +3029,20 @@ i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
return 0;
if (group == general_reggroup)
- return (!fp_regnum_p
- && !mmx_regnum_p
- && !mxcsr_regnum_p
- && !xmm_regnum_p
- && !ymm_regnum_p
- && !ymmh_regnum_p);
+ {
+ if (!fp_regnum_p
+ && !mmx_regnum_p
+ && !mxcsr_regnum_p
+ && !xmm_regnum_p
+ && !ymm_regnum_p
+ && !ymmh_regnum_p)
+ {
+ const char *regname = gdbarch_register_name (gdbarch, regnum);
+ return regname != NULL && *regname != '\0';
+ }
+ else
+ return 0;
+ }
return default_register_reggroup_p (gdbarch, regnum, group);
}
More information about the Gdb-patches
mailing list