From: Simon Marchi <simon.marchi@efficios.com>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@efficios.com>
Subject: [PATCH 00/21] ui / interp cleansup
Date: Fri, 8 Sep 2023 14:22:54 -0400 [thread overview]
Message-ID: <20230908190227.96319-1-simon.marchi@efficios.com> (raw)
When trying to untangle things in the ui and interp area (notably,
trying to understand what happens when setting and restoring
interpreters, in the context of interpreter-exec), I came up with a few
cleanups. Here is a first round.
One goal is to make some interp operations be methods of struct ui.
Interpreters are children of UIs, so I think it makes sense if the
process of looking up / creating interpreters is implemented in methods
of struct ui. The concept of top level interpreter is also per UI, so I
made getting and setting the top level interpreter methods of struct ui.
I plan to do the same with the current and the command interpreter
later, but it wasn't as obvious.
Another goal is to try to reduce the number of references to current_ui
in the code that manages interpreters. Such references are often behind
macros, which in my opinion makes it difficult to understand how things
work. To this end, there is one patch that adds a backlink from
interpreters to their parent UI, so that interpreters know which UI they
belong to (and they should never need to touch current_ui).
Simon Marchi (21):
gdb: use intrusive_list for struct ui linked list
gdb: make interp_lookup_existing a method of struct ui
gdb: make interp_add a method of struct ui
gdb: make interp_lookup a method of struct ui
gdb: remove ui:::add_interp and ui::lookup_existing_interp
gdb: uncover some current_ui uses in interp_set
gdb: add backlink to ui in interp
gdb: pass ui down to gdb_setup_readline and gdb_disable_readline
gdb/python: use m_ui instead of current_ui in dap_interp::init
gdb/mi: use m_ui instead of current_ui in mi_interp::init
gdb/cli: use m_ui instead of current_ui in cli_interp::resume
gdb/tui: use m_ui instead of current_ui in tui_interp::resume
gdb/mi: use m_ui instead of current_ui in mi_interp::resume
gdb/cli: use m_ui instead of current_ui in cli_interp::suspend
gdb/tui: use m_ui instead of current_ui in tui_interp::suspend
gdb/mi: use m_ui instead of current_ui in mi_interp::suspend
gdb: pass current_ui down to interp_set
gdb: make interp_set a method of struct ui
gdb: pass down current_ui to set_top_level_interpreter
gdb: make set_top_level_interpreter a method of struct ui
gdb: make top_level_interpreter a method of struct ui
gdb/cli/cli-interp.c | 25 +++----
gdb/cli/cli-interp.h | 2 +-
gdb/cli/cli-script.c | 2 +-
gdb/event-top.c | 10 +--
gdb/event-top.h | 4 +-
gdb/infrun.c | 8 +--
gdb/interps.c | 159 ++++---------------------------------------
gdb/interps.h | 40 ++++++-----
gdb/linespec.c | 3 +-
gdb/main.c | 6 +-
gdb/mi/mi-interp.c | 23 +++----
gdb/mi/mi-interp.h | 4 +-
gdb/python/py-dap.c | 12 ++--
gdb/python/python.c | 2 +-
gdb/solib.c | 4 +-
gdb/top.c | 6 +-
gdb/tui/tui-interp.c | 19 +++---
gdb/tui/tui.c | 2 +-
gdb/ui.c | 124 +++++++++++++++++++++++++--------
gdb/ui.h | 64 ++++++++++++-----
gdb/utils.c | 5 +-
21 files changed, 243 insertions(+), 281 deletions(-)
base-commit: 15db2284f2f8259e46635ca6df3efc772d951fac
--
2.42.0
next reply other threads:[~2023-09-08 19:02 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-08 18:22 Simon Marchi [this message]
2023-09-08 18:22 ` [PATCH 01/21] gdb: use intrusive_list for struct ui linked list Simon Marchi
2023-09-08 18:22 ` [PATCH 02/21] gdb: make interp_lookup_existing a method of struct ui Simon Marchi
2023-09-08 18:22 ` [PATCH 03/21] gdb: make interp_add " Simon Marchi
2023-09-08 18:22 ` [PATCH 04/21] gdb: make interp_lookup " Simon Marchi
2023-09-12 9:15 ` Andrew Burgess
2023-09-12 14:38 ` Simon Marchi
2023-09-08 18:22 ` [PATCH 05/21] gdb: remove ui:::add_interp and ui::lookup_existing_interp Simon Marchi
2023-09-08 18:23 ` [PATCH 06/21] gdb: uncover some current_ui uses in interp_set Simon Marchi
2023-09-08 18:23 ` [PATCH 07/21] gdb: add backlink to ui in interp Simon Marchi
2023-09-08 18:23 ` [PATCH 08/21] gdb: pass ui down to gdb_setup_readline and gdb_disable_readline Simon Marchi
2023-09-08 18:23 ` [PATCH 09/21] gdb/python: use m_ui instead of current_ui in dap_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 10/21] gdb/mi: use m_ui instead of current_ui in mi_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 11/21] gdb/cli: use m_ui instead of current_ui in cli_interp::resume Simon Marchi
2023-09-12 10:40 ` Andrew Burgess
2023-09-12 15:42 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 12/21] gdb/tui: use m_ui instead of current_ui in tui_interp::resume Simon Marchi
2023-09-12 10:41 ` Andrew Burgess
2023-09-08 18:23 ` [PATCH 13/21] gdb/mi: use m_ui instead of current_ui in mi_interp::resume Simon Marchi
2023-09-12 10:44 ` Andrew Burgess
2023-09-12 16:36 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 14/21] gdb/cli: use m_ui instead of current_ui in cli_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 15/21] gdb/tui: use m_ui instead of current_ui in tui_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 16/21] gdb/mi: use m_ui instead of current_ui in mi_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 17/21] gdb: pass current_ui down to interp_set Simon Marchi
2023-09-12 10:54 ` Andrew Burgess
2023-09-12 17:17 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 18/21] gdb: make interp_set a method of struct ui Simon Marchi
2023-09-12 10:58 ` Andrew Burgess
2023-09-12 17:23 ` Simon Marchi
2023-09-12 13:41 ` Tom Tromey
2023-09-12 17:32 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 19/21] gdb: pass down current_ui to set_top_level_interpreter Simon Marchi
2023-09-11 15:15 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 20/21] gdb: make set_top_level_interpreter a method of struct ui Simon Marchi
2023-09-12 11:20 ` Andrew Burgess
2023-09-12 17:41 ` Simon Marchi
2023-09-08 18:23 ` [PATCH 21/21] gdb: make top_level_interpreter " Simon Marchi
2023-09-12 11:35 ` Andrew Burgess
2023-09-12 17:54 ` Simon Marchi
2023-09-12 11:38 ` [PATCH 00/21] ui / interp cleansup Andrew Burgess
2023-09-12 17:51 ` Simon Marchi
2023-09-12 18:06 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230908190227.96319-1-simon.marchi@efficios.com \
--to=simon.marchi@efficios.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).