Re: Several regressions and we branch soon.

Patrick Palka
2015-06-23T21:45:07Z

On Tue, 23 Jun 2015, Doug Evans wrote:

> On Tue, Jun 23, 2015 at 3:17 PM, Keith Seitz <keiths@redhat.com> wrote:
>> FWIW, I updated my virgin sandbox earlier, and I don't see a bunch of
>> the failures that you are/have. I've listed the ones I do see below.
>> FWIW, I have another branch that was last updated the first week of May
>> which shows none of these problems.
>>
>> I'll start looking at these failures immediately.
>>
>> Keith
>>
>> On 06/23/2015 12:03 PM, Doug Evans wrote:
>>
>>>>> FAIL: gdb.base/default.exp: info set
>>>>> FAIL: gdb.base/default.exp: show

The problem here seems to be that the "show" function corresponding to
the "mpx bound" command calls error("Intel(R) Memory Protection
Extensions not supported on this target."); which throws an exception
that causes the entire "info set"/"show" loop to exit early. Should
"show foo" ever throw an exception? Should the "info set"/"show" loop
expect an exception to be thrown from a show function?

This diff fixes the default.exp FAILs as far as I can tell:

diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 42d0346..d11efa1 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -8777,11 +8777,17 @@ i386_mpx_info_bounds (char *args, int from_tty)
struct type *data_ptr_type = builtin_type (gdbarch)->builtin_data_ptr;

if (!i386_mpx_enabled ())
- error (_("Intel(R) Memory Protection Extensions not\
- supported on this target."));
+ {
+ printf_unfiltered (_("Intel(R) Memory Protection Extensions not "
+ "supported on this target.\n"));
+ return;
+ }

if (args == NULL)
- error (_("Address of pointer variable expected."));
+ {
+ printf_unfiltered (_("Address of pointer variable expected.\n"));
+ return;
+ }

addr = parse_and_eval_address (args);

@@ -8856,7 +8862,7 @@ static struct cmd_list_element *mpx_set_cmdlist, *mpx_show_cmdlist;
static void
set_mpx_cmd (char *args, int from_tty)
{
- help_list (mpx_set_cmdlist, "set mpx", all_commands, gdb_stdout);
+ help_list (mpx_set_cmdlist, "set mpx ", all_commands, gdb_stdout);
}

/* Helper function for the CLI commands. */
@@ -8901,7 +8907,7 @@ is \"default\"."),

add_prefix_cmd ("mpx", class_support, set_mpx_cmd, _("\
Set Intel(R) Memory Protection Extensions specific variables."),
- &mpx_set_cmdlist, "set tdesc ",
+ &mpx_set_cmdlist, "set mpx ",
0 /* allow-unknown */, &setlist);

/* Add "mpx" prefix for the show commands. */