From: Simon Marchi <simon.marchi@polymtl.ca>
To: gdb-patches@sourceware.org
Cc: Simon Marchi <simon.marchi@polymtl.ca>
Subject: [PATCH 0/6] Make frame_info_ptr automatic
Date: Fri, 2 Dec 2022 13:00:46 -0500 [thread overview]
Message-ID: <20221202180052.212745-1-simon.marchi@polymtl.ca> (raw)
This patch series makes frame_info_ptr automatic, in that it won't be
needed to call prepare_reinflate and reinflate to benefit from
reinflation. The current frame_info_ptr is a bit error-prone, as it's
easy to call prepare_reinflate, reinflate, or both, when it would be
needed.
There are some complication with user-created frames, patches 2 and 3
deal with that. Patch 4 changes a lot of code back to using `frame_info
*`, because it won't be possible to use the new frame_info_ptr on frames
whose id is not computed yet. Finally, patches 5 and 6 do the changes
to frame_info_ptr itself to make it automatic.
Simon Marchi (6):
gdb: add invalidate_selected_frame function
gdb: make it possible to restore selected user-created frames
gdb: make user-created frames reinflatable
gdb: revert frame_unwind::this_id and callees to use `frame_info *`
gdb: make frame_info_ptr grab frame level and id on construction
gdb: make frame_info_ptr auto-reinflatable
gdb/aarch64-fbsd-tdep.c | 2 +-
gdb/aarch64-linux-tdep.c | 2 +-
gdb/aarch64-tdep.c | 30 +--
gdb/alpha-linux-tdep.c | 2 +-
gdb/alpha-mdebug-tdep.c | 16 +-
gdb/alpha-netbsd-tdep.c | 2 +-
gdb/alpha-obsd-tdep.c | 2 +-
gdb/alpha-tdep.c | 18 +-
gdb/alpha-tdep.h | 2 +-
gdb/amd64-darwin-tdep.c | 2 +-
gdb/amd64-fbsd-tdep.c | 2 +-
gdb/amd64-linux-tdep.c | 6 +-
gdb/amd64-netbsd-tdep.c | 4 +-
gdb/amd64-obsd-tdep.c | 12 +-
gdb/amd64-sol2-tdep.c | 2 +-
gdb/amd64-tdep.c | 32 +--
gdb/amd64-tdep.h | 1 -
gdb/amd64-windows-tdep.c | 10 +-
gdb/arc-linux-tdep.c | 4 +-
gdb/arc-tdep.c | 18 +-
gdb/arc-tdep.h | 4 +-
gdb/arm-fbsd-tdep.c | 2 +-
gdb/arm-linux-tdep.c | 8 +-
gdb/arm-obsd-tdep.c | 2 +-
gdb/arm-tdep.c | 56 ++--
gdb/arm-tdep.h | 2 +-
gdb/avr-tdep.c | 14 +-
gdb/bfin-linux-tdep.c | 2 +-
gdb/bfin-tdep.c | 12 +-
gdb/blockframe.c | 4 +-
gdb/bpf-tdep.c | 8 +-
gdb/cris-tdep.c | 34 +--
gdb/csky-linux-tdep.c | 4 +-
gdb/csky-tdep.c | 22 +-
gdb/defs.h | 1 -
gdb/dummy-frame.c | 8 +-
gdb/dummy-frame.h | 2 +-
gdb/dwarf2/expr.c | 12 +-
gdb/dwarf2/expr.h | 6 +-
gdb/dwarf2/frame-tailcall.c | 34 ++-
gdb/dwarf2/frame-tailcall.h | 5 +-
gdb/dwarf2/frame.c | 38 +--
gdb/dwarf2/frame.h | 12 +-
gdb/dwarf2/loc.c | 10 +-
gdb/dwarf2/loc.h | 2 +-
gdb/findvar.c | 15 +-
gdb/frame-base.c | 8 +-
gdb/frame-base.h | 14 +-
gdb/frame-info.c | 74 +++++-
gdb/frame-info.h | 61 +++--
gdb/frame-unwind.c | 24 +-
gdb/frame-unwind.h | 32 +--
gdb/frame.c | 249 ++++++++++--------
gdb/frame.h | 354 ++++++++++++++++++++++----
gdb/frv-linux-tdep.c | 10 +-
gdb/frv-tdep.c | 10 +-
gdb/ft32-tdep.c | 8 +-
gdb/gdbarch-components.py | 8 +-
gdb/gdbarch-gen.h | 16 +-
gdb/gdbarch-selftests.c | 5 +-
gdb/gdbarch.c | 8 +-
gdb/h8300-tdep.c | 8 +-
gdb/hppa-bsd-tdep.c | 2 +-
gdb/hppa-linux-tdep.c | 8 +-
gdb/hppa-netbsd-tdep.c | 4 +-
gdb/hppa-tdep.c | 28 +-
gdb/hppa-tdep.h | 6 +-
gdb/i386-bsd-tdep.c | 2 +-
gdb/i386-darwin-tdep.c | 4 +-
gdb/i386-darwin-tdep.h | 2 +-
gdb/i386-fbsd-tdep.c | 2 +-
gdb/i386-gnu-tdep.c | 6 +-
gdb/i386-linux-tdep.c | 10 +-
gdb/i386-netbsd-tdep.c | 4 +-
gdb/i386-nto-tdep.c | 4 +-
gdb/i386-obsd-tdep.c | 10 +-
gdb/i386-sol2-tdep.c | 2 +-
gdb/i386-tdep.c | 46 ++--
gdb/i386-tdep.h | 6 +-
gdb/i387-tdep.c | 2 +-
gdb/i387-tdep.h | 2 +-
gdb/ia64-libunwind-tdep.c | 12 +-
gdb/ia64-libunwind-tdep.h | 11 +-
gdb/ia64-tdep.c | 38 +--
gdb/infcmd.c | 2 -
gdb/inline-frame.c | 12 +-
gdb/inline-frame.h | 3 +-
gdb/iq2000-tdep.c | 10 +-
gdb/jit.c | 10 +-
gdb/lm32-tdep.c | 8 +-
gdb/loongarch-linux-tdep.c | 2 +-
gdb/loongarch-tdep.c | 6 +-
gdb/m32c-tdep.c | 8 +-
gdb/m32r-linux-tdep.c | 14 +-
gdb/m32r-tdep.c | 8 +-
gdb/m68hc11-tdep.c | 12 +-
gdb/m68k-linux-tdep.c | 12 +-
gdb/m68k-tdep.c | 14 +-
gdb/m68k-tdep.h | 2 -
gdb/mep-tdep.c | 8 +-
gdb/mi/mi-cmd-stack.c | 2 -
gdb/microblaze-linux-tdep.c | 4 +-
gdb/microblaze-tdep.c | 10 +-
gdb/mips-fbsd-tdep.c | 4 +-
gdb/mips-linux-tdep.c | 16 +-
gdb/mips-sde-tdep.c | 12 +-
gdb/mips-tdep.c | 68 ++---
gdb/mips64-obsd-tdep.c | 2 +-
gdb/mn10300-linux-tdep.c | 4 +-
gdb/mn10300-tdep.c | 10 +-
gdb/moxie-tdep.c | 8 +-
gdb/msp430-tdep.c | 8 +-
gdb/nds32-tdep.c | 18 +-
gdb/nios2-linux-tdep.c | 2 +-
gdb/nios2-tdep.c | 22 +-
gdb/observable.h | 1 +
gdb/or1k-linux-tdep.c | 8 +-
gdb/or1k-tdep.c | 10 +-
gdb/ppc-fbsd-tdep.c | 8 +-
gdb/ppc-linux-tdep.c | 10 +-
gdb/ppc-netbsd-tdep.c | 2 +-
gdb/ppc-obsd-tdep.c | 8 +-
gdb/python/py-unwind.c | 10 +-
gdb/record-btrace.c | 24 +-
gdb/riscv-fbsd-tdep.c | 2 +-
gdb/riscv-linux-tdep.c | 4 +-
gdb/riscv-tdep.c | 8 +-
gdb/rl78-tdep.c | 12 +-
gdb/rs6000-aix-tdep.c | 8 +-
gdb/rs6000-tdep.c | 26 +-
gdb/rx-tdep.c | 16 +-
gdb/s12z-tdep.c | 6 +-
gdb/s390-linux-tdep.c | 8 +-
gdb/s390-tdep.c | 41 ++-
gdb/s390-tdep.h | 2 +-
gdb/sentinel-frame.c | 6 +-
gdb/sh-linux-tdep.c | 6 +-
gdb/sh-tdep.c | 16 +-
gdb/sol2-tdep.c | 2 +-
gdb/sol2-tdep.h | 2 +-
gdb/sparc-linux-tdep.c | 4 +-
gdb/sparc-netbsd-tdep.c | 10 +-
gdb/sparc-obsd-tdep.c | 8 +-
gdb/sparc-sol2-tdep.c | 8 +-
gdb/sparc-tdep.c | 16 +-
gdb/sparc-tdep.h | 6 +-
gdb/sparc64-fbsd-tdep.c | 8 +-
gdb/sparc64-linux-tdep.c | 4 +-
gdb/sparc64-netbsd-tdep.c | 10 +-
gdb/sparc64-obsd-tdep.c | 16 +-
gdb/sparc64-sol2-tdep.c | 8 +-
gdb/sparc64-tdep.c | 10 +-
gdb/sparc64-tdep.h | 3 +-
gdb/stack.c | 16 --
gdb/std-regs.c | 8 +-
gdb/symfile.h | 1 -
gdb/testsuite/gdb.base/frame-view.c | 80 ++++++
gdb/testsuite/gdb.base/frame-view.exp | 107 ++++++++
gdb/testsuite/gdb.base/frame-view.py | 25 ++
gdb/tic6x-linux-tdep.c | 2 +-
gdb/tic6x-tdep.c | 20 +-
gdb/tilegx-linux-tdep.c | 2 +-
gdb/tilegx-tdep.c | 10 +-
gdb/trad-frame.c | 10 +-
gdb/trad-frame.h | 9 +-
gdb/tramp-frame.c | 10 +-
gdb/tramp-frame.h | 5 +-
gdb/user-regs.c | 4 +-
gdb/user-regs.h | 16 +-
gdb/v850-tdep.c | 10 +-
gdb/value.c | 5 +-
gdb/value.h | 28 +-
gdb/vax-tdep.c | 12 +-
gdb/xstormy16-tdep.c | 10 +-
gdb/xtensa-tdep.c | 22 +-
gdb/z80-tdep.c | 6 +-
176 files changed, 1628 insertions(+), 1056 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/frame-view.c
create mode 100644 gdb/testsuite/gdb.base/frame-view.exp
create mode 100644 gdb/testsuite/gdb.base/frame-view.py
base-commit: ac57bf55472df186dc9fb63f7787f740d457f473
--
2.38.1
next reply other threads:[~2022-12-02 18:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-02 18:00 Simon Marchi [this message]
2022-12-02 18:00 ` [PATCH 1/6] gdb: add invalidate_selected_frame function Simon Marchi
2022-12-07 14:09 ` Bruno Larsen
2022-12-07 16:54 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 2/6] gdb: make it possible to restore selected user-created frames Simon Marchi
2022-12-08 9:25 ` Bruno Larsen
2022-12-08 20:53 ` Simon Marchi
2022-12-12 11:14 ` Bruno Larsen
2022-12-02 18:00 ` [PATCH 3/6] gdb: make user-created frames reinflatable Simon Marchi
2022-12-12 11:32 ` Bruno Larsen
2022-12-12 13:17 ` Simon Marchi
2022-12-12 13:33 ` Bruno Larsen
2022-12-12 13:45 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 4/6] gdb: revert frame_unwind::this_id and callees to use `frame_info *` Simon Marchi
2022-12-05 21:41 ` Tom Tromey
2022-12-07 16:52 ` Simon Marchi
2022-12-12 13:17 ` Bruno Larsen
2022-12-12 13:26 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 5/6] gdb: make frame_info_ptr grab frame level and id on construction Simon Marchi
2022-12-08 8:51 ` Bruno Larsen
2022-12-08 20:57 ` Simon Marchi
2022-12-02 18:00 ` [PATCH 6/6] gdb: make frame_info_ptr auto-reinflatable Simon Marchi
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=20221202180052.212745-1-simon.marchi@polymtl.ca \
--to=simon.marchi@polymtl.ca \
--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).