public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
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


             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).