gdb: extension languages finish_initialization to initialize
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 22 Apr 2021 17:26:15 +0000 (18:26 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 28 Apr 2021 08:56:21 +0000 (09:56 +0100)
Now that both Python and Guile are fully initialized from their
respective finish_initialization methods, the "finish" in the method
name doesn't really make sense; initialization starts _and_ finishes
with that method.

As such, this commit renames finish_initialization to just initialize.

There should be no user visible changes after this commit.

gdb/ChangeLog:

* extension-priv.h (struct extension_language_ops): Rename
'finish_initialization' to 'initialize'.
* extension.c (finish_ext_lang_initialization): Renamed to...
(ext_lang_initialization): ...this, update comment, and updated
the calls to reflect the change in struct extension_language_ops.
* extension.h (finish_ext_lang_initialization): Renamed to...
(ext_lang_initialization): ...this.
* guile/guile.c (gdbscm_finish_initialization): Renamed to...
(gdbscm_initialize): ...this, update comment at definition.
(guile_extension_ops): Update.
* main.c (captured_main_1): Update call to
finish_ext_lang_initialization.
* python/python.c (gdbpy_finish_initialization): Rename to...
(gdbpy_initialize): ...this, update comment at definition, and
update call to do_finish_initialization.
(python_extension_ops): Update.
(do_finish_initialization): Rename to...
(do_initialize): ...this, and update comment.

gdb/ChangeLog
gdb/extension-priv.h
gdb/extension.c
gdb/extension.h
gdb/guile/guile.c
gdb/main.c
gdb/python/python.c

index 5cf843954b49207aff85f3882fd950a97667bb17..4a4fa6300dd8f821d9b8a6696e29a9bc3d857391 100644 (file)
@@ -1,3 +1,24 @@
+2021-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * extension-priv.h (struct extension_language_ops): Rename
+       'finish_initialization' to 'initialize'.
+       * extension.c (finish_ext_lang_initialization): Renamed to...
+       (ext_lang_initialization): ...this, update comment, and updated
+       the calls to reflect the change in struct extension_language_ops.
+       * extension.h (finish_ext_lang_initialization): Renamed to...
+       (ext_lang_initialization): ...this.
+       * guile/guile.c (gdbscm_finish_initialization): Renamed to...
+       (gdbscm_initialize): ...this, update comment at definition.
+       (guile_extension_ops): Update.
+       * main.c (captured_main_1): Update call to
+       finish_ext_lang_initialization.
+       * python/python.c (gdbpy_finish_initialization): Rename to...
+       (gdbpy_initialize): ...this, update comment at definition, and
+       update call to do_finish_initialization.
+       (python_extension_ops): Update.
+       (do_finish_initialization): Rename to...
+       (do_initialize): ...this, and update comment.
+
 2021-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * main.c (captured_main_1): Add a call to
index 1b6701ba6cc9c27479010595b7fa4e47482f462e..77f23e0f911df4edccf8724bf46a3a0114fbe91a 100644 (file)
@@ -109,10 +109,11 @@ struct extension_language_script_ops
 
 struct extension_language_ops
 {
-  /* Called at the end of gdb initialization to give the extension language
-     an opportunity to finish up.  This is useful for things like adding
-     new commands where one has to wait until gdb itself is initialized.  */
-  void (*finish_initialization) (const struct extension_language_defn *);
+  /* Called after GDB has processed the early initialization settings
+     files.  This is when the extension language should be initialized.  By
+     the time this is called all of the earlier initialization functions
+     have already been called.  */
+  void (*initialize) (const struct extension_language_defn *);
 
   /* Return non-zero if the extension language successfully initialized.
      This method is required.  */
index 523079a1a6a760891d0280e6fa35a3874aad5111..27dce9befa0f7de3d6d6f4da827e1a0d875670e7 100644 (file)
@@ -323,19 +323,19 @@ using scoped_default_sigint = scoped_default_signal<SIGINT>;
    These only iterate over external extension languages, not including
    GDB's own extension/scripting language, unless otherwise indicated.  */
 
-/* Wrapper to call the extension_language_ops.finish_initialization "method"
-   for each compiled-in extension language.  */
+/* Wrapper to call the extension_language_ops.initialize "method" for each
+   compiled-in extension language.  */
 
 void
-finish_ext_lang_initialization (void)
+ext_lang_initialization (void)
 {
   for (const struct extension_language_defn *extlang : extension_languages)
     {
       if (extlang->ops != nullptr
-         && extlang->ops->finish_initialization != NULL)
+         && extlang->ops->initialize != NULL)
        {
          scoped_default_sigint set_sigint_to_default_handler;
-         extlang->ops->finish_initialization (extlang);
+         extlang->ops->initialize (extlang);
        }
     }
 }
index a505c68d25e8be3994c4637cf382674271d9e763..56f57560de306a2073c7bb024da7508eb891e006 100644 (file)
@@ -276,7 +276,7 @@ extern bool ext_lang_auto_load_enabled (const struct extension_language_defn *);
 /* Wrappers for each extension language API function that iterate over all
    extension languages.  */
 
-extern void finish_ext_lang_initialization (void);
+extern void ext_lang_initialization (void);
 
 extern void eval_ext_lang_from_control_command (struct command_line *cmd);
 
index 9c2a40b61be7eb8994d9ab22290d89309800586a..bdf15cd498b33564e7080246d9c74d984c6562b0 100644 (file)
@@ -75,8 +75,7 @@ const char *gdbscm_print_excp = gdbscm_print_excp_message;
 \f
 #ifdef HAVE_GUILE
 
-static void gdbscm_finish_initialization
-  (const struct extension_language_defn *);
+static void gdbscm_initialize (const struct extension_language_defn *);
 static int gdbscm_initialized (const struct extension_language_defn *);
 static void gdbscm_eval_from_control_command
   (const struct extension_language_defn *, struct command_line *);
@@ -113,7 +112,7 @@ static const struct extension_language_script_ops guile_extension_script_ops =
 
 static const struct extension_language_ops guile_extension_ops =
 {
-  gdbscm_finish_initialization,
+  gdbscm_initialize,
   gdbscm_initialized,
 
   gdbscm_eval_from_control_command,
@@ -638,12 +637,11 @@ call_initialize_gdb_module (void *data)
   return NULL;
 }
 
-/* A callback to finish Guile initialization after gdb has finished all its
-   initialization.
-   This is the extension_language_ops.finish_initialization "method".  */
+/* A callback to initialize Guile after gdb has finished all its
+   initialization.  This is the extension_language_ops.initialize "method".  */
 
 static void
-gdbscm_finish_initialization (const struct extension_language_defn *extlang)
+gdbscm_initialize (const struct extension_language_defn *extlang)
 {
 #if HAVE_GUILE
   /* The Python support puts the C side in module "_gdb", leaving the
index 2a1c3a4866fdf0e30d7b92131d69109182732253..d92aa02d83185512bd25d1150bae62c0387e4f20 100644 (file)
@@ -1053,8 +1053,8 @@ captured_main_1 (struct captured_main_args *context)
   execute_cmdargs (&cmdarg_vec, CMDARG_EARLYINIT_FILE,
                   CMDARG_EARLYINIT_COMMAND, &ret);
 
-  /* Finish initializing the extension languges.  */
-  finish_ext_lang_initialization ();
+  /* Initialize the extension languages.  */
+  ext_lang_initialization ();
 
   /* Recheck if we're starting up quietly after processing the startup
      scripts and commands.  */
index 520508043bab1b18ebafb994668e989e39ccda54..1d0d86d5c49d7395cdbbdf0b331379be54bfa465 100644 (file)
@@ -129,8 +129,7 @@ PyObject *gdbpy_gdb_memory_error;
 static script_sourcer_func gdbpy_source_script;
 static objfile_script_sourcer_func gdbpy_source_objfile_script;
 static objfile_script_executor_func gdbpy_execute_objfile_script;
-static void gdbpy_finish_initialization
-  (const struct extension_language_defn *);
+static void gdbpy_initialize (const struct extension_language_defn *);
 static int gdbpy_initialized (const struct extension_language_defn *);
 static void gdbpy_eval_from_control_command
   (const struct extension_language_defn *, struct command_line *cmd);
@@ -162,7 +161,7 @@ const struct extension_language_script_ops python_extension_script_ops =
 
 const struct extension_language_ops python_extension_ops =
 {
-  gdbpy_finish_initialization,
+  gdbpy_initialize,
   gdbpy_initialized,
 
   gdbpy_eval_from_control_command,
@@ -1885,12 +1884,12 @@ message == an error message without a stack will be printed."),
 
 #ifdef HAVE_PYTHON
 
-/* Helper function for gdbpy_finish_initialization.  This does the
-   work and then returns false if an error has occurred and must be
-   displayed, or true on success.  */
+/* Helper function for gdbpy_initialize.  This does the work and then
+   returns false if an error has occurred and must be displayed, or true on
+   success.  */
 
 static bool
-do_finish_initialization (const struct extension_language_defn *extlang)
+do_initialize (const struct extension_language_defn *extlang)
 {
   PyObject *m;
   PyObject *sys_path;
@@ -1948,21 +1947,19 @@ do_finish_initialization (const struct extension_language_defn *extlang)
   return gdb_pymodule_addobject (m, "gdb", gdb_python_module) >= 0;
 }
 
-/* Perform the remaining python initializations.
-   These must be done after GDB is at least mostly initialized.
-   E.g., The "info pretty-printer" command needs the "info" prefix
-   command installed.
-   This is the extension_language_ops.finish_initialization "method".  */
+/* Perform Python initialization.  This will be called after GDB has
+   performed all of its own initialization.  This is the
+   extension_language_ops.initialize "method".  */
 
 static void
-gdbpy_finish_initialization (const struct extension_language_defn *extlang)
+gdbpy_initialize (const struct extension_language_defn *extlang)
 {
   if (!do_start_initialization () && PyErr_Occurred ())
     gdbpy_print_stack ();
 
   gdbpy_enter enter_py (get_current_arch (), current_language);
 
-  if (!do_finish_initialization (extlang))
+  if (!do_initialize (extlang))
     {
       gdbpy_print_stack ();
       warning (_("internal error: Unhandled Python exception"));