aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-02-23 13:18:49 -0700
committerTom Tromey <tromey@adacore.com>2024-02-27 10:30:29 -0700
commitbeadf912845c9c37c5afeadd77635950cf697d9f (patch)
tree0aea9a41c267cefe709c06f72e878f229a58be1b /gdb/python
parent1eae7be116ddabb13b34d2c2e8e0dc13fbae2a0d (diff)
downloadgdb-beadf912845c9c37c5afeadd77635950cf697d9f.zip
gdb-beadf912845c9c37c5afeadd77635950cf697d9f.tar.gz
gdb-beadf912845c9c37c5afeadd77635950cf697d9f.tar.bz2
Add extension_language_ops::shutdown
Right now, Python is shut down via a final cleanup. However, it seems to me that it is better for extension languages to be shut down explicitly, after all the ordinary final cleanups are run. The main reason for this is that a subsequent patch adds another case like finalize_values; and rather than add a series of workarounds for Python shutdown, it seemed better to let these be done via final cleanups, and then have Python shutdown itself be the special case.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/python.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 8f8ee7c..57f6bd5 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -110,6 +110,7 @@ static objfile_script_sourcer_func gdbpy_source_objfile_script;
static objfile_script_executor_func gdbpy_execute_objfile_script;
static void gdbpy_initialize (const struct extension_language_defn *);
static int gdbpy_initialized (const struct extension_language_defn *);
+static void finalize_python (const struct extension_language_defn *);
static void gdbpy_eval_from_control_command
(const struct extension_language_defn *, struct command_line *cmd);
static void gdbpy_start_type_printers (const struct extension_language_defn *,
@@ -147,6 +148,7 @@ static const struct extension_language_ops python_extension_ops =
{
gdbpy_initialize,
gdbpy_initialized,
+ finalize_python,
gdbpy_eval_from_control_command,
@@ -2057,7 +2059,7 @@ static struct cmd_list_element *user_show_python_list;
interpreter. This lets Python's 'atexit' work. */
static void
-finalize_python ()
+finalize_python (const struct extension_language_defn *ignore)
{
struct active_ext_lang_state *previous_active;
@@ -2297,8 +2299,6 @@ init_done:
/* Release the GIL while gdb runs. */
PyEval_SaveThread ();
- add_final_cleanup (finalize_python);
-
/* Only set this when initialization has succeeded. */
gdb_python_initialized = 1;
return true;