Refresh regs window in display_registers_from
[deliverable/binutils-gdb.git] / gdb / gdbarch.sh
index 5f1e2f9d9583c202d334b82dac7b2fddedc92ea2..e7c96159241e00c9e61bb61dd7ab639963140b47 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Architecture commands for GDB, the GNU debugger.
 #
-# Copyright (C) 1998-2020 Free Software Foundation, Inc.
+# Copyright (C) 1998-2021 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -189,7 +189,7 @@ do
        #   hiding something from the ``struct info'' object
        # m -> multi-arch function
        #   hiding a multi-arch function (parameterised with the architecture)
-        # M -> multi-arch function + predicate
+       # M -> multi-arch function + predicate
        #   hiding a multi-arch function + predicate to test function validity
 
     returntype ) : ;;
@@ -783,18 +783,17 @@ V;ULONGEST;max_insn_length;;;0;0
 # If the instruction cannot execute out of line, return NULL.  The
 # core falls back to stepping past the instruction in-line instead in
 # that case.
-M;displaced_step_closure_up;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
+M;displaced_step_copy_insn_closure_up;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
 
-# Return true if GDB should use hardware single-stepping to execute
-# the displaced instruction identified by CLOSURE.  If false,
-# GDB will simply restart execution at the displaced instruction
-# location, and it is up to the target to ensure GDB will receive
-# control again (e.g. by placing a software breakpoint instruction
-# into the displaced instruction buffer).
+# Return true if GDB should use hardware single-stepping to execute a displaced
+# step instruction.  If false, GDB will simply restart execution at the
+# displaced instruction location, and it is up to the target to ensure GDB will
+# receive control again (e.g. by placing a software breakpoint instruction into
+# the displaced instruction buffer).
 #
-# The default implementation returns false on all targets that
-# provide a gdbarch_software_single_step routine, and true otherwise.
-m;bool;displaced_step_hw_singlestep;struct displaced_step_closure *closure;closure;;default_displaced_step_hw_singlestep;;0
+# The default implementation returns false on all targets that provide a
+# gdbarch_software_single_step routine, and true otherwise.
+m;bool;displaced_step_hw_singlestep;void;;;default_displaced_step_hw_singlestep;;0
 
 # Fix up the state resulting from successfully single-stepping a
 # displaced instruction, to give the result we would have gotten from
@@ -812,16 +811,22 @@ m;bool;displaced_step_hw_singlestep;struct displaced_step_closure *closure;closu
 #
 # For a general explanation of displaced stepping and how GDB uses it,
 # see the comments in infrun.c.
-M;void;displaced_step_fixup;struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs;closure, from, to, regs;;NULL
+M;void;displaced_step_fixup;struct displaced_step_copy_insn_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs;closure, from, to, regs;;NULL
 
-# Return the address of an appropriate place to put displaced
-# instructions while we step over them.  There need only be one such
-# place, since we're only stepping one thread over a breakpoint at a
-# time.
+# Prepare THREAD for it to displaced step the instruction at its current PC.
 #
-# For a general explanation of displaced stepping and how GDB uses it,
-# see the comments in infrun.c.
-m;CORE_ADDR;displaced_step_location;void;;;NULL;;(! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn)
+# Throw an exception if any unexpected error happens.
+M;displaced_step_prepare_status;displaced_step_prepare;thread_info *thread, CORE_ADDR &displaced_pc;thread, displaced_pc
+
+# Clean up after a displaced step of THREAD.
+m;displaced_step_finish_status;displaced_step_finish;thread_info *thread, gdb_signal sig;thread, sig;;NULL;;(! gdbarch->displaced_step_finish) != (! gdbarch->displaced_step_prepare)
+
+# Return the closure associated to the displaced step buffer that is at ADDR.
+F;const displaced_step_copy_insn_closure *;displaced_step_copy_insn_closure_by_addr;inferior *inf, CORE_ADDR addr;inf, addr
+
+# PARENT_INF has forked and CHILD_PTID is the ptid of the child.  Restore the
+# contents of all displaced step buffers in the child's address space.
+f;void;displaced_step_restore_all_in_ptid;inferior *parent_inf, ptid_t child_ptid;parent_inf, child_ptid
 
 # Relocate an instruction to execute at a different address.  OLDLOC
 # is the address in the inferior memory where the instruction to
@@ -1179,7 +1184,7 @@ m;ULONGEST;type_align;struct type *type;type;;default_type_align;;0
 f;std::string;get_pc_address_flags;frame_info *frame, CORE_ADDR pc;frame, pc;;default_get_pc_address_flags;;0
 
 # Read core file mappings
-m;void;read_core_file_mappings;struct bfd *cbfd,gdb::function_view<void (ULONGEST count)> pre_loop_cb,gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename, const void *other)> loop_cb;cbfd, pre_loop_cb, loop_cb;;default_read_core_file_mappings;;0
+m;void;read_core_file_mappings;struct bfd *cbfd, gdb::function_view<void (ULONGEST count)> pre_loop_cb, gdb::function_view<void (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs, const char *filename)> loop_cb;cbfd, pre_loop_cb, loop_cb;;default_read_core_file_mappings;;0
 
 EOF
 }
@@ -1233,7 +1238,7 @@ cat <<EOF
 
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2020 Free Software Foundation, Inc.
+   Copyright (C) 1998-2021 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1271,6 +1276,7 @@ cat <<EOF
 #include "gdb_obstack.h"
 #include "infrun.h"
 #include "osabi.h"
+#include "displaced-stepping.h"
 
 struct floatformat;
 struct ui_file;
@@ -1297,6 +1303,7 @@ struct mem_range;
 struct syscalls_info;
 struct thread_info;
 struct ui_out;
+struct inferior;
 
 #include "regcache.h"
 
@@ -1531,8 +1538,8 @@ typedef void (gdbarch_dump_tdep_ftype) (struct gdbarch *gdbarch, struct ui_file
 extern void register_gdbarch_init (enum bfd_architecture architecture, gdbarch_init_ftype *);
 
 extern void gdbarch_register (enum bfd_architecture architecture,
-                              gdbarch_init_ftype *,
-                              gdbarch_dump_tdep_ftype *);
+                             gdbarch_init_ftype *,
+                             gdbarch_dump_tdep_ftype *);
 
 
 /* Return a freshly allocated, NULL terminated, array of the valid
@@ -1707,7 +1714,7 @@ static void alloc_gdbarch_data (struct gdbarch *);
 unsigned int gdbarch_debug = GDBARCH_DEBUG;
 static void
 show_gdbarch_debug (struct ui_file *file, int from_tty,
-                    struct cmd_list_element *c, const char *value)
+                   struct cmd_list_element *c, const char *value)
 {
   fprintf_filtered (file, _("Architecture debugging is %s.\\n"), value);
 }
@@ -1845,7 +1852,7 @@ printf "\n"
 cat <<EOF
 struct gdbarch *
 gdbarch_alloc (const struct gdbarch_info *info,
-               struct gdbarch_tdep *tdep)
+              struct gdbarch_tdep *tdep)
 {
   struct gdbarch *gdbarch;
 
@@ -1981,8 +1988,8 @@ done
 cat <<EOF
   if (!log.empty ())
     internal_error (__FILE__, __LINE__,
-                    _("verify_gdbarch: the following are invalid ...%s"),
-                    log.c_str ());
+                   _("verify_gdbarch: the following are invalid ...%s"),
+                   log.c_str ());
 }
 EOF
 
@@ -2001,8 +2008,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
   gdb_nm_file = GDB_NM_FILE;
 #endif
   fprintf_unfiltered (file,
-                      "gdbarch_dump: GDB_NM_FILE = %s\\n",
-                      gdb_nm_file);
+                     "gdbarch_dump: GDB_NM_FILE = %s\\n",
+                     gdb_nm_file);
 EOF
 function_list | sort '-t;' -k 3 | while do_read
 do
@@ -2027,13 +2034,13 @@ do
                print="core_addr_to_string_nz (gdbarch->${function})"
                ;;
            :* )
-               fmt="%s"
+               fmt="%s"
                print="plongest (gdbarch->${function})"
                ;;
            * )
-               fmt="%s"
+               fmt="%s"
                ;;
-        esac
+       esac
        printf "  fprintf_unfiltered (file,\n"
        printf "                      \"gdbarch_dump: %s = %s\\\\n\",\n" "$function" "$fmt"
        printf "                      %s);\n" "$print"
@@ -2066,7 +2073,7 @@ do
        printf "bool\n"
        printf "gdbarch_%s_p (struct gdbarch *gdbarch)\n" "$function"
        printf "{\n"
-        printf "  gdb_assert (gdbarch != NULL);\n"
+       printf "  gdb_assert (gdbarch != NULL);\n"
        printf "  return %s;\n" "$predicate"
        printf "}\n"
     fi
@@ -2081,7 +2088,7 @@ do
          printf "gdbarch_%s (struct gdbarch *gdbarch, %s)\n" "$function" "$formal"
        fi
        printf "{\n"
-        printf "  gdb_assert (gdbarch != NULL);\n"
+       printf "  gdb_assert (gdbarch != NULL);\n"
        printf "  gdb_assert (gdbarch->%s != NULL);\n" "$function"
        if class_is_predicate_p && test -n "${predefault}"
        then
@@ -2105,7 +2112,7 @@ do
            else
                params="${actual}"
            fi
-        fi
+       fi
                if [ "x${returntype}" = "xvoid" ]
        then
          printf "  gdbarch->%s (%s);\n" "$function" "$params"
@@ -2126,7 +2133,7 @@ do
        printf "%s\n" "$returntype"
        printf "gdbarch_%s (struct gdbarch *gdbarch)\n" "$function"
        printf "{\n"
-        printf "  gdb_assert (gdbarch != NULL);\n"
+       printf "  gdb_assert (gdbarch != NULL);\n"
        if [ "x${invalid_p}" = "x0" ]
        then
            printf "  /* Skip verify of %s, invalid_p == 0 */\n" "$function"
@@ -2156,7 +2163,7 @@ do
        printf "%s\n" "$returntype"
        printf "gdbarch_%s (struct gdbarch *gdbarch)\n" "$function"
        printf "{\n"
-        printf "  gdb_assert (gdbarch != NULL);\n"
+       printf "  gdb_assert (gdbarch != NULL);\n"
        printf "  if (gdbarch_debug >= 2)\n"
        printf "    fprintf_unfiltered (gdb_stdlog, \"gdbarch_%s called\\\\n\");\n" "$function"
        printf "  return gdbarch->%s;\n" "$function"
@@ -2313,13 +2320,13 @@ gdbarch_printable_names (void)
       const struct bfd_arch_info *ap;
       ap = bfd_lookup_arch (rego->bfd_architecture, 0);
       if (ap == NULL)
-        internal_error (__FILE__, __LINE__,
-                        _("gdbarch_architecture_names: multi-arch unknown"));
+       internal_error (__FILE__, __LINE__,
+                       _("gdbarch_architecture_names: multi-arch unknown"));
       do
-        {
-          append_name (&arches, &nr_arches, ap->printable_name);
-          ap = ap->next;
-        }
+       {
+         append_name (&arches, &nr_arches, ap->printable_name);
+         ap = ap->next;
+       }
       while (ap != NULL);
     }
   append_name (&arches, &nr_arches, NULL);
@@ -2329,7 +2336,7 @@ gdbarch_printable_names (void)
 
 void
 gdbarch_register (enum bfd_architecture bfd_architecture,
-                  gdbarch_init_ftype *init,
+                 gdbarch_init_ftype *init,
                  gdbarch_dump_tdep_ftype *dump_tdep)
 {
   struct gdbarch_registration **curr;
@@ -2340,9 +2347,9 @@ gdbarch_register (enum bfd_architecture bfd_architecture,
   if (bfd_arch_info == NULL)
     {
       internal_error (__FILE__, __LINE__,
-                      _("gdbarch: Attempt to register "
+                     _("gdbarch: Attempt to register "
                        "unknown architecture (%d)"),
-                      bfd_architecture);
+                     bfd_architecture);
     }
   /* Check that we haven't seen this architecture before.  */
   for (curr = &gdbarch_registry;
@@ -2351,9 +2358,9 @@ gdbarch_register (enum bfd_architecture bfd_architecture,
     {
       if (bfd_architecture == (*curr)->bfd_architecture)
        internal_error (__FILE__, __LINE__,
-                        _("gdbarch: Duplicate registration "
+                       _("gdbarch: Duplicate registration "
                          "of architecture (%s)"),
-                       bfd_arch_info->printable_name);
+                       bfd_arch_info->printable_name);
     }
   /* log it */
   if (gdbarch_debug)
@@ -2381,7 +2388,7 @@ register_gdbarch_init (enum bfd_architecture bfd_architecture,
 
 struct gdbarch_list *
 gdbarch_list_lookup_by_info (struct gdbarch_list *arches,
-                             const struct gdbarch_info *info)
+                            const struct gdbarch_info *info)
 {
   for (; arches != NULL; arches = arches->next)
     {
@@ -2551,9 +2558,9 @@ _initialize_gdbarch ()
 Set architecture debugging."), _("\\
 Show architecture debugging."), _("\\
 When non-zero, architecture debugging is enabled."),
-                            NULL,
-                            show_gdbarch_debug,
-                            &setdebuglist, &showdebuglist);
+                           NULL,
+                           show_gdbarch_debug,
+                           &setdebuglist, &showdebuglist);
 }
 EOF
 
This page took 0.052932 seconds and 4 git commands to generate.