gdb: Use add_setshow_zuinteger_unlimited_cmd in remote.c

Switch to use add_setshow_zuinteger_unlimited_cmd for some of the
control variables in remote.c.  The variables
hardware-watchpoint-limit, hardware-breakpoint-limit, and
hardware-watchpoint-length-limit are all changed.  For example, a user
will now see this:

    (gdb) show remote hardware-breakpoint-limit
    The maximum number of target hardware breakpoints is unlimited.

Instead of this:

    (gdb) show remote hardware-breakpoint-limit
    The maximum number of target hardware breakpoints is -1.

And can do this:

    (gdb) set remote hardware-breakpoint-limit unlimited

However, previously any negative value implied "unlimited", now only
-1, or the text "unlimited" can be used for unlimited.  Any other
negative value will give an error about invalid input.  This is a
small change in the user interface, but, hopefully, this will not
cause too many problems.

I've also added show functions for these three variables to allow for
internationalisation.

gdb/ChangeLog:

	* remote.c (show_hardware_watchpoint_limit): New function.
	(show_hardware_watchpoint_length_limit): New function.
	(show_hardware_breakpoint_limit): New function.
	(_initialize_remote): Use add_setshow_zuinteger_unlimited_cmd
	where appropriate, update help text.

gdb/doc/ChangeLog:

	* gdb.texinfo (Remote Configuration): Update descriptions for
	set/show of hardware-watchpoint-limit, hardware-breakpoint-limit,
	and hardware-watchpoint-length-limit variables.
This commit is contained in:
Andrew Burgess 2018-07-02 22:28:22 +01:00
parent 2af4d0d938
commit 055303e28f
4 changed files with 72 additions and 21 deletions

View File

@ -1,3 +1,11 @@
2018-07-09 Andrew Burgess <andrew.burgess@embecosm.com>
* remote.c (show_hardware_watchpoint_limit): New function.
(show_hardware_watchpoint_length_limit): New function.
(show_hardware_breakpoint_limit): New function.
(_initialize_remote): Use add_setshow_zuinteger_unlimited_cmd
where appropriate, update help text.
2018-07-09 Tom Tromey <tom@tromey.com>
* Makefile.in (CDEPS): Don't mention XM_CDEPS.

View File

@ -1,3 +1,9 @@
2018-07-09 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.texinfo (Remote Configuration): Update descriptions for
set/show of hardware-watchpoint-limit, hardware-breakpoint-limit,
and hardware-watchpoint-length-limit variables.
2018-07-02 Maciej W. Rozycki <macro@mips.com>
PR tdep/8282

View File

@ -21161,16 +21161,24 @@ responses.
@anchor{set remote hardware-breakpoint-limit}
@item set remote hardware-watchpoint-limit @var{limit}
@itemx set remote hardware-breakpoint-limit @var{limit}
Restrict @value{GDBN} to using @var{limit} remote hardware breakpoint or
watchpoints. A limit of -1, the default, is treated as unlimited.
Restrict @value{GDBN} to using @var{limit} remote hardware watchpoints
or breakpoints. The @var{limit} can be set to 0 to disable hardware
watchpoints or breakpoints, and @code{unlimited} for unlimited
watchpoints or breakpoints.
@item show remote hardware-watchpoint-limit
@itemx show remote hardware-breakpoint-limit
Show the current limit for the number of hardware watchpoints or
breakpoints that @value{GDBN} can use.
@cindex limit hardware watchpoints length
@cindex remote target, limit watchpoints length
@anchor{set remote hardware-watchpoint-length-limit}
@item set remote hardware-watchpoint-length-limit @var{limit}
Restrict @value{GDBN} to using @var{limit} bytes for the maximum length of
a remote hardware watchpoint. A limit of -1, the default, is treated
as unlimited.
Restrict @value{GDBN} to using @var{limit} bytes for the maximum
length of a remote hardware watchpoint. A @var{limit} of 0 disables
hardware watchpoints and @code{unlimited} allows watchpoints of any
length.
@item show remote hardware-watchpoint-length-limit
Show the current limit (in bytes) of the maximum length of

View File

@ -1728,6 +1728,39 @@ show_memory_write_packet_size (const char *args, int from_tty)
show_memory_packet_size (&memory_write_packet_config);
}
/* Show the number of hardware watchpoints that can be used. */
static void
show_hardware_watchpoint_limit (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
fprintf_filtered (file, _("The maximum number of target hardware "
"watchpoints is %s.\n"), value);
}
/* Show the length limit (in bytes) for hardware watchpoints. */
static void
show_hardware_watchpoint_length_limit (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
fprintf_filtered (file, _("The maximum length (in bytes) of a target "
"hardware watchpoint is %s.\n"), value);
}
/* Show the number of hardware breakpoints that can be used. */
static void
show_hardware_breakpoint_limit (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
fprintf_filtered (file, _("The maximum number of target hardware "
"breakpoints is %s.\n"), value);
}
long
remote_target::get_memory_write_packet_size ()
{
@ -14347,32 +14380,28 @@ further restriction and ``limit'' to enable that restriction."),
_("Show the maximum number of bytes per memory-read packet."),
&remote_show_cmdlist);
add_setshow_zinteger_cmd ("hardware-watchpoint-limit", no_class,
add_setshow_zuinteger_unlimited_cmd ("hardware-watchpoint-limit", no_class,
&remote_hw_watchpoint_limit, _("\
Set the maximum number of target hardware watchpoints."), _("\
Show the maximum number of target hardware watchpoints."), _("\
Specify a negative limit for unlimited."),
NULL, NULL, /* FIXME: i18n: The maximum
number of target hardware
watchpoints is %s. */
&remote_set_cmdlist, &remote_show_cmdlist);
add_setshow_zinteger_cmd ("hardware-watchpoint-length-limit", no_class,
Specify \"unlimited\" for unlimited hardware watchpoints."),
NULL, show_hardware_watchpoint_limit,
&remote_set_cmdlist,
&remote_show_cmdlist);
add_setshow_zuinteger_unlimited_cmd ("hardware-watchpoint-length-limit",
no_class,
&remote_hw_watchpoint_length_limit, _("\
Set the maximum length (in bytes) of a target hardware watchpoint."), _("\
Show the maximum length (in bytes) of a target hardware watchpoint."), _("\
Specify a negative limit for unlimited."),
NULL, NULL, /* FIXME: i18n: The maximum
length (in bytes) of a target
hardware watchpoint is %s. */
Specify \"unlimited\" to allow watchpoints of unlimited size."),
NULL, show_hardware_watchpoint_length_limit,
&remote_set_cmdlist, &remote_show_cmdlist);
add_setshow_zinteger_cmd ("hardware-breakpoint-limit", no_class,
add_setshow_zuinteger_unlimited_cmd ("hardware-breakpoint-limit", no_class,
&remote_hw_breakpoint_limit, _("\
Set the maximum number of target hardware breakpoints."), _("\
Show the maximum number of target hardware breakpoints."), _("\
Specify a negative limit for unlimited."),
NULL, NULL, /* FIXME: i18n: The maximum
number of target hardware
breakpoints is %s. */
Specify \"unlimited\" for unlimited hardware breakpoints."),
NULL, show_hardware_breakpoint_limit,
&remote_set_cmdlist, &remote_show_cmdlist);
add_setshow_zuinteger_cmd ("remoteaddresssize", class_obscure,