]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Improve GDBserver ptrace error message
authorLuis Machado <luis.machado@linaro.org>
Thu, 23 Dec 2021 18:16:46 +0000 (15:16 -0300)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 1 Sep 2022 22:59:24 +0000 (15:59 -0700)
Issue: https://git.morello-project.org/morello/binutils-gdb/-/issues/9

Improve error message when setting capability registers fails. Mention
the name of the set (capability) explicitly so it is clear what register
set we are talking about.

gdbserver/linux-aarch64-low.cc
gdbserver/linux-low.cc
gdbserver/linux-low.h

index 8dff539ef698a20d304c90f76beb5a48db161dbc..ec0f40cc8407d0adc43862e704463ba8e33e5ffd 100644 (file)
@@ -845,7 +845,7 @@ static struct regset_info aarch64_regsets[] =
   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_MORELLO,
     0, OPTIONAL_REGS,
     aarch64_fill_cregset, aarch64_store_cregset, nullptr,
-    "cheri.ptrace_forge_cap"
+    "cheri.ptrace_forge_cap", "capability"
   },
   NULL_REGSET
 };
index 56be6e8edc6ffac036fdc245f500489fd9b5c1fe..58a2a12b3327eebb533a8b057cc90bc865d22863 100644 (file)
@@ -5029,9 +5029,19 @@ regsets_store_inferior_registers (struct regsets_info *regsets_info,
            {
              if (regset->sysctl_write_should_warn)
                {
-                 warning ("Unable to store registers.\n"
-                          "Please run \"sysctl %s=1\".",
-                          regset->sysctl_write_permission);
+                 if (regset->register_set_name == nullptr)
+                   {
+                     warning ("Unable to store registers.\n"
+                              "Please run \"sysctl %s=1\".",
+                              regset->sysctl_write_permission);
+                   }
+                 else
+                   {
+                     warning ("Unable to store %s registers.\n"
+                              "Please run \"sysctl %s=1\".",
+                              regset->register_set_name,
+                              regset->sysctl_write_permission);
+                   }
                  regset->sysctl_write_should_warn = false;
                }
            }
index 1f98039e485d20258159211e28804c78fc47a776..e2259ae96c71c74277bdbd900426c19620683fe7 100644 (file)
@@ -48,7 +48,8 @@ enum regset_type {
 /* The arch's regsets array initializer must be terminated with a NULL
    regset.  */
 #define NULL_REGSET \
-  { 0, 0, 0, -1, (enum regset_type) -1, nullptr, nullptr, nullptr, nullptr }
+  { 0, 0, 0, -1, (enum regset_type) -1, nullptr, nullptr, nullptr, nullptr, \
+    nullptr }
 
 struct regset_info
 {
@@ -65,6 +66,7 @@ struct regset_info
      switch.  */
   const char *sysctl_read_permission = nullptr;
   const char *sysctl_write_permission = nullptr;
+  const char *register_set_name = nullptr;
   bool sysctl_read_should_warn = true;
   bool sysctl_write_should_warn = true;
 };