RE: [RFC] Remove i386 low level debug register function from nm- header file.

Pierre Muller
2009-05-12T15:45:21Z

What about something like this:
(once my main patch is accepted)

static void
maint_show_debug_regs (char * args, int from_tty)
{
if (i386_dr_low.set_addr && i386_dr_low.get_status &&
i386_dr_low.set_control)
{
}
else
{
error (_("x86 debug register cannot be used for that target"));
}
}

void
_initialize_i386_nat (void)
{
#ifdef I386_USE_GENERIC_WATCHPOINTS
/* A maintenance command to enable printing the internal DRi mirror
variables. */
add_cmd ("show-debug-regs", class_maintenance,
maint_show_debug_regs, _("\
Set whether to show variables that mirror the x86 debug registers.\n\
Use \"on\" to enable, \"off\" to disable.\n\
If enabled, the debug registers values are shown when GDB inserts\n\
or removes a hardware breakpoint or watchpoint, and when the inferior\n\
triggers a breakpoint or watchpoint."),
&maintenancelist);
#endif

This would also remove one of the ARI var_boolean warnings!

The problem is that I don't know what to use for the
parsing of args in the case where the command should be accepted,
and I also don't know what I should use instead of error here.

Can someone help me here?

Eli, is it OK if we do that as a separate patch?

Pierre

> -----Message d'origine-----
> De : Eli Zaretskii [mailto:eliz@gnu.org]
> Envoyé : Tuesday, May 12, 2009 5:16 PM
> À : Ulrich Weigand
> Cc : muller@ics.u-strasbg.fr; gdb-patches@sourceware.org;
> pedro@codesourcery.com
> Objet : Re: [RFC] Remove i386 low level debug register function from
> nm- header file.
>
> > Date: Tue, 12 May 2009 17:00:35 +0200 (CEST)
> > From: "Ulrich Weigand" <uweigand@de.ibm.com>
> > Cc: gdb-patches@sourceware.org, pedro@codesourcery.com ('Pedro
> Alves'),
> > eliz@gnu.org ('Eli Zaretskii')
> >
> > > > I think you should provide everything in i386-nat.c (and
> > > > the new i386-nat.h) unconditionally, and eliminate the
> > > > various definitions of I386_USE_GENERIC_WATCHPOINTS in the
> > > > nm- header files.
> > >
> > > The only drawback is that "maint show-debug--regs" command
> > > will then also appear on target that do not support
> > > debug registers... Anyhow, it will just be a no-op in that case.
> > > Is that a problem?
> >
> > I don't think so. The command simply says: "whenever the hardware
> > debug registers are changed, display their contents". Being able
> > to set that flag on a system that happens to never use hardware
> > debug register should be fine, the condition just never occurs.
>
> I'd rather we displayed an error message when this command is used on
> platforms where it has no effect. Silently doing nothing is not a
> good UI. But that's me.