From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 00/30] Baby step for objfile splitting
Date: Sun, 29 Oct 2023 17:23:21 -0600 [thread overview]
Message-ID: <20231029-split-objfile-2023-bound-sym-october-v1-0-612531df2734@tromey.com> (raw)
Every year or so, I take a stab at the objfile splitting work. This
always fails and I end up not sending anything.
This year, I decided to take a baby step instead, thinking maybe it
would be possible to slowly grind away at the problem.
This series is the first such step. It spreads the use of
block_symbol through a bunch of code, trying to eliminate calls to
symbol::value_address.
The longer term idea here is to then add an objfile member to
block_symbol. After this, it would be relatively simple to change
symbols to be relocated at point of use. (This would be a significant
step toward objfile splitting, but there's even more to do after
that...)
Regression tested on x86-64 Fedora 38.
---
Tom Tromey (30):
Introduce block-symbol.h
Add block_symbol::address
Easy conversions to use block_symbol::address
Use block_symbol::address in ada-tasks.c
Use block_symbol::address in printcmd.c
Use block_symbol::address in tracepoint.c
More use of block_symbol::address in tracepoint.c
Use block_symbol::address in ax-gdb.c
Use block_symbol::address in linespec.c
Use block_symbol::address in ada-lang.c
Use block_symbol::address in symmisc.c
Introduce read_var_value overload
Use read_var_value in gdb/compile
Return a block_symbol from find_pc_sect_function
Use read_var_value overload in finish_command_fsm
Use block_symbol in overload-handling code
Change evaluate_var_value to accept a block_symbol
Change value_of_variable to take a block_symbol
Return a block_symbol from get_frame_function
Use read_var_value overload in return_command
Use read_var_value overload in py-finishbreakpoint.c
Use read_var_value overload in py-framefilter.c
Use read_var_value overload in Guile
Use read_var_value in read_frame_arg and read_frame_local
Change print_variable_and_value to take a block_symbol
Change find_frame_funname to return a block_symbol
Change btrace_function::sym to a block_symbol
Use read_var_value overload in Python
Remove the old read_var_value
Change language_defn::read_var_value to accept block_symbol
gdb/ada-lang.c | 51 +++++++------
gdb/ada-tasks.c | 14 ++--
gdb/ax-gdb.c | 28 +++----
gdb/ax-gdb.h | 2 +-
gdb/block-symbol.h | 41 +++++++++++
gdb/blockframe.c | 18 ++---
gdb/breakpoint.c | 4 +-
gdb/btrace.c | 38 +++++-----
gdb/btrace.h | 5 +-
gdb/cli/cli-cmds.c | 4 +-
gdb/compile/compile-c-symbols.c | 18 +++--
gdb/compile/compile-cplus-symbols.c | 6 +-
gdb/compile/compile-cplus-types.c | 2 +-
gdb/compile/compile-loc2c.c | 14 ++--
gdb/compile/compile.h | 6 +-
gdb/cp-support.c | 46 +++++++-----
gdb/cp-support.h | 6 +-
gdb/dwarf2/ada-imported.c | 2 +-
gdb/dwarf2/loc.c | 16 ++--
gdb/dwarf2/loc.h | 3 +-
gdb/eval.c | 62 +++++++---------
gdb/expop.h | 5 ++
gdb/f-valprint.c | 4 +-
gdb/findvar.c | 24 +++---
gdb/frame.c | 2 +-
gdb/frame.h | 9 ++-
gdb/guile/guile-internal.h | 2 +-
gdb/guile/scm-block.c | 6 +-
gdb/guile/scm-frame.c | 7 +-
gdb/guile/scm-symbol.c | 78 ++++++++++----------
gdb/infcall.c | 4 +-
gdb/infcmd.c | 29 ++++----
gdb/infrun.c | 10 +--
gdb/inline-frame.c | 2 +-
gdb/language.h | 14 +---
gdb/linespec.c | 15 ++--
gdb/mi/mi-cmd-stack.c | 20 ++---
gdb/printcmd.c | 21 +++---
gdb/python/py-block.c | 6 +-
gdb/python/py-finishbreakpoint.c | 11 +--
gdb/python/py-frame.c | 15 ++--
gdb/python/py-framefilter.c | 64 +++++++---------
gdb/python/py-objfile.c | 16 ++--
gdb/python/py-record-btrace.c | 2 +-
gdb/python/py-symbol.c | 143 ++++++++++++++++++------------------
gdb/python/py-type.c | 2 +-
gdb/python/py-unwind.c | 4 +-
gdb/python/python-internal.h | 4 +-
gdb/record-btrace.c | 8 +-
gdb/rust-lang.c | 2 +-
gdb/skip.c | 2 +-
gdb/solib-frv.c | 2 +-
gdb/sparc-tdep.c | 4 +-
gdb/stack.c | 59 ++++++++-------
gdb/stack.h | 2 +-
gdb/symmisc.c | 15 ++--
gdb/symtab.c | 4 +-
gdb/symtab.h | 22 ++----
gdb/tracepoint.c | 24 +++---
gdb/tracepoint.h | 2 +-
gdb/valarith.c | 9 +--
gdb/valops.c | 75 ++++++++++---------
gdb/value.c | 2 +-
gdb/value.h | 18 ++---
64 files changed, 597 insertions(+), 558 deletions(-)
---
base-commit: 04f0f42bcf4fb5f7bbde0b954f816c5f6ff7f571
change-id: 20231029-split-objfile-2023-bound-sym-october-8da7ff1061cc
Best regards,
--
Tom Tromey <tom@tromey.com>
next reply other threads:[~2023-10-29 23:23 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-29 23:23 Tom Tromey [this message]
2023-10-29 23:23 ` [PATCH 01/30] Introduce block-symbol.h Tom Tromey
2023-10-29 23:23 ` [PATCH 02/30] Add block_symbol::address Tom Tromey
2023-10-29 23:23 ` [PATCH 03/30] Easy conversions to use block_symbol::address Tom Tromey
2023-10-29 23:23 ` [PATCH 04/30] Use block_symbol::address in ada-tasks.c Tom Tromey
2023-11-03 3:40 ` Simon Marchi
2023-11-05 16:35 ` Tom Tromey
2023-10-29 23:23 ` [PATCH 05/30] Use block_symbol::address in printcmd.c Tom Tromey
2023-11-03 3:42 ` Simon Marchi
2023-11-05 16:35 ` Tom Tromey
2023-10-29 23:23 ` [PATCH 06/30] Use block_symbol::address in tracepoint.c Tom Tromey
2023-10-29 23:23 ` [PATCH 07/30] More use of " Tom Tromey
2023-10-29 23:23 ` [PATCH 08/30] Use block_symbol::address in ax-gdb.c Tom Tromey
2023-10-29 23:23 ` [PATCH 09/30] Use block_symbol::address in linespec.c Tom Tromey
2023-10-29 23:23 ` [PATCH 10/30] Use block_symbol::address in ada-lang.c Tom Tromey
2023-10-29 23:23 ` [PATCH 11/30] Use block_symbol::address in symmisc.c Tom Tromey
2023-10-29 23:23 ` [PATCH 12/30] Introduce read_var_value overload Tom Tromey
2023-10-29 23:23 ` [PATCH 13/30] Use read_var_value in gdb/compile Tom Tromey
2023-10-29 23:23 ` [PATCH 14/30] Return a block_symbol from find_pc_sect_function Tom Tromey
2023-10-29 23:23 ` [PATCH 15/30] Use read_var_value overload in finish_command_fsm Tom Tromey
2023-10-29 23:23 ` [PATCH 16/30] Use block_symbol in overload-handling code Tom Tromey
2023-10-29 23:23 ` [PATCH 17/30] Change evaluate_var_value to accept a block_symbol Tom Tromey
2023-10-29 23:23 ` [PATCH 18/30] Change value_of_variable to take " Tom Tromey
2023-10-29 23:23 ` [PATCH 19/30] Return a block_symbol from get_frame_function Tom Tromey
2023-10-29 23:23 ` [PATCH 20/30] Use read_var_value overload in return_command Tom Tromey
2023-10-29 23:23 ` [PATCH 21/30] Use read_var_value overload in py-finishbreakpoint.c Tom Tromey
2023-10-29 23:23 ` [PATCH 22/30] Use read_var_value overload in py-framefilter.c Tom Tromey
2023-10-29 23:23 ` [PATCH 23/30] Use read_var_value overload in Guile Tom Tromey
2023-10-29 23:23 ` [PATCH 24/30] Use read_var_value in read_frame_arg and read_frame_local Tom Tromey
2023-10-29 23:23 ` [PATCH 25/30] Change print_variable_and_value to take a block_symbol Tom Tromey
2023-10-29 23:23 ` [PATCH 26/30] Change find_frame_funname to return " Tom Tromey
2023-10-29 23:23 ` [PATCH 27/30] Change btrace_function::sym to " Tom Tromey
2023-10-29 23:23 ` [PATCH 28/30] Use read_var_value overload in Python Tom Tromey
2023-10-29 23:23 ` [PATCH 29/30] Remove the old read_var_value Tom Tromey
2023-10-29 23:23 ` [PATCH 30/30] Change language_defn::read_var_value to accept block_symbol Tom Tromey
2023-11-03 3:59 ` [PATCH 00/30] Baby step for objfile splitting Simon Marchi
2023-11-05 16:48 ` 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=20231029-split-objfile-2023-bound-sym-october-v1-0-612531df2734@tromey.com \
--to=tom@tromey.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).