aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2021-04-22 18:26:15 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2021-04-28 09:56:21 +0100
commit041ca48e976b9a2a39a9440f7fbc2dffc77ed7c1 (patch)
treec05d29cf7abac2446363998721455a22ade34ee2 /gdb
parent1178f01adf9c3b3a5b0fa564aa4d570e26a26819 (diff)
downloadgdb-041ca48e976b9a2a39a9440f7fbc2dffc77ed7c1.zip
gdb-041ca48e976b9a2a39a9440f7fbc2dffc77ed7c1.tar.gz
gdb-041ca48e976b9a2a39a9440f7fbc2dffc77ed7c1.tar.bz2
gdb: extension languages finish_initialization to initialize
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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog21
-rw-r--r--gdb/extension-priv.h9
-rw-r--r--gdb/extension.c10
-rw-r--r--gdb/extension.h2
-rw-r--r--gdb/guile/guile.c12
-rw-r--r--gdb/main.c4
-rw-r--r--gdb/python/python.c25
7 files changed, 50 insertions, 33 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5cf8439..4a4fa63 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,26 @@
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
finish_ext_lang_initialization.
* top.c (gdb_init): Remove call to finish_ext_lang_initialization.
diff --git a/gdb/extension-priv.h b/gdb/extension-priv.h
index 1b6701b..77f23e0 100644
--- a/gdb/extension-priv.h
+++ b/gdb/extension-priv.h
@@ -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. */
diff --git a/gdb/extension.c b/gdb/extension.c
index 523079a..27dce9b 100644
--- a/gdb/extension.c
+++ b/gdb/extension.c
@@ -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);
}
}
}
diff --git a/gdb/extension.h b/gdb/extension.h
index a505c68..56f5756 100644
--- a/gdb/extension.h
+++ b/gdb/extension.h
@@ -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);
diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c
index 9c2a40b..bdf15cd 100644
--- a/gdb/guile/guile.c
+++ b/gdb/guile/guile.c
@@ -75,8 +75,7 @@ const char *gdbscm_print_excp = gdbscm_print_excp_message;
#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
diff --git a/gdb/main.c b/gdb/main.c
index 2a1c3a4..d92aa02 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -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. */
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 5205080..1d0d86d 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -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"));