aboutsummaryrefslogtreecommitdiff
path: root/gdb/mi/mi-main.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-03-16 10:57:32 -0600
committerTom Tromey <tromey@adacore.com>2023-05-23 10:09:28 -0600
commitc97d123d6701fbf462e96db001cea07ed32e4efa (patch)
tree7442dc14459bc1e8874998d219dda702371f380e /gdb/mi/mi-main.c
parente7a2797eb00dbbceb6796f1baa120055d174a229 (diff)
downloadbinutils-c97d123d6701fbf462e96db001cea07ed32e4efa.zip
binutils-c97d123d6701fbf462e96db001cea07ed32e4efa.tar.gz
binutils-c97d123d6701fbf462e96db001cea07ed32e4efa.tar.bz2
Implement gdb.execute_mi
This adds a new Python function, gdb.execute_mi, that can be used to invoke an MI command but get the output as a Python object, rather than a string. This is done by implementing a new ui_out subclass that builds a Python object. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11688 Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Diffstat (limited to 'gdb/mi/mi-main.c')
-rw-r--r--gdb/mi/mi-main.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index b430115..f3b7490 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -1965,6 +1965,21 @@ mi_execute_command (const char *cmd, int from_tty)
}
}
+/* See mi-cmds.h. */
+
+void
+mi_execute_command (mi_parse *context)
+{
+ if (context->op != MI_COMMAND)
+ error (_("Command is not an MI command"));
+
+ scoped_restore save_token = make_scoped_restore (&current_token,
+ context->token);
+ scoped_restore save_debug = make_scoped_restore (&mi_debug_p, 0);
+
+ mi_cmd_execute (context);
+}
+
/* Captures the current user selected context state, that is the current
thread and frame. Later we can then check if the user selected context
has changed at all. */