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.
This commit is contained in:
Andrew Burgess 2021-04-22 18:26:15 +01:00
parent 1178f01adf
commit 041ca48e97
7 changed files with 50 additions and 33 deletions

View 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

View 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. */

View 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);
}
}
}

View 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);

View file

@ -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

View 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. */

View 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"));