Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 0/7] Inline Function Optimised Code Debug Improvements
@ 2025-07-20 10:20 Andrew Burgess
  2025-07-20 10:20 ` [PATCH 1/7] gdb: improve line number lookup around inline functions Andrew Burgess
                   ` (8 more replies)
  0 siblings, 9 replies; 37+ messages in thread
From: Andrew Burgess @ 2025-07-20 10:20 UTC (permalink / raw)
  To: gdb-patches; +Cc: Andrew Burgess

This series presents some improvements to debugging inline functions,
especially in optimised code.

The first two patches of this series have been posted previously here:

  https://inbox.sourceware.org/gdb-patches/cover.1736865029.git.aburgess@redhat.com

This series replaces that earlier work, though the patches are
basically unchanged.

This entire series is an alternative solution to the patches that were
posted here:

  https://inbox.sourceware.org/gdb-patches/AS1PR01MB946510286FBF2497A6F03E83E4922@AS1PR01MB9465.eurprd01.prod.exchangelabs.com/

My reasons for writing an alternative patch set can be found in the
commit messages of patches (2) and (7), I'm not going to repeat them
here.  However, Bernd, the original patch author, did amazing work
identifying the problems GDB was having, and these patches likely
wouldn't exist without the original patch series, so a big thanks
there.

For reviewing, this series can be considered in 3 parts:

  + Patches (1) and (2) are independent from the rest of the series,
    though related in theme.  Both these patches could be approved and
    merged ahead of remaining work, and do offer an improvement to GDB
    on their own.

  + Patches (3), (4), (5), and (6) are refactoring work to support the
    last patch.  These can be reviewed, but shouldn't be merged until
    the last patch is approved.

  + Patch (7) covers the final parts of this work, which deal with
    non-empty inline functions.

All thoughts and feedback are welcome.

Thanks,
Andrew

---

Andrew Burgess (7):
  gdb: improve line number lookup around inline functions
  gdb: handle empty ranges for inline subroutines
  gdb: split dwarf line table parsing in two
  gdb: move block range recording into its own function
  gdb: create address map after parsing all DIE
  gdb: record block end addresses while parsing DIEs
  gdb: fix-up truncated inline function block ranges

 gdb/buildsym.c                                |  42 +-
 gdb/buildsym.h                                |  13 +-
 gdb/dwarf2/cu.h                               |   7 +
 gdb/dwarf2/read.c                             | 288 +++++++--
 gdb/symtab.c                                  |  25 +-
 gdb/testsuite/gdb.cp/step-and-next-inline.exp | 171 ++++--
 .../gdb.dwarf2/dw2-empty-inline-low-high.c    |  39 ++
 .../gdb.dwarf2/dw2-empty-inline-low-high.exp  | 128 ++++
 .../gdb.dwarf2/dw2-empty-inline-ranges.c      |  54 ++
 .../gdb.dwarf2/dw2-empty-inline-ranges.exp    | 260 ++++++++
 .../gdb.dwarf2/dw2-extend-inline-block.c      |  78 +++
 .../gdb.dwarf2/dw2-extend-inline-block.exp    | 574 ++++++++++++++++++
 gdb/testsuite/gdb.dwarf2/dw2-inline-bt.c      |  79 +++
 gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp    | 227 +++++++
 .../gdb.dwarf2/dw2-unexpected-entry-pc.exp    |  75 ++-
 gdb/testsuite/gdb.opt/empty-inline-cxx.cc     |  65 ++
 gdb/testsuite/gdb.opt/empty-inline-cxx.exp    |  95 +++
 gdb/testsuite/gdb.opt/empty-inline.c          |  40 ++
 gdb/testsuite/gdb.opt/empty-inline.exp        | 130 ++++
 gdb/testsuite/gdb.opt/inline-bt.c             |  28 +
 gdb/testsuite/gdb.opt/inline-bt.exp           | 119 ++--
 21 files changed, 2342 insertions(+), 195 deletions(-)
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-empty-inline-low-high.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-empty-inline-low-high.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-empty-inline-ranges.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-empty-inline-ranges.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-extend-inline-block.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-extend-inline-block.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-inline-bt.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp
 create mode 100644 gdb/testsuite/gdb.opt/empty-inline-cxx.cc
 create mode 100644 gdb/testsuite/gdb.opt/empty-inline-cxx.exp
 create mode 100644 gdb/testsuite/gdb.opt/empty-inline.c
 create mode 100644 gdb/testsuite/gdb.opt/empty-inline.exp


base-commit: cfbf9925c1c34f9e9d47c8b29d165866557663e3
-- 
2.47.1


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2026-02-04 10:44 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-20 10:20 [PATCH 0/7] Inline Function Optimised Code Debug Improvements Andrew Burgess
2025-07-20 10:20 ` [PATCH 1/7] gdb: improve line number lookup around inline functions Andrew Burgess
2025-07-20 10:20 ` [PATCH 2/7] gdb: handle empty ranges for inline subroutines Andrew Burgess
2025-07-20 10:20 ` [PATCH 3/7] gdb: split dwarf line table parsing in two Andrew Burgess
2025-07-20 10:20 ` [PATCH 4/7] gdb: move block range recording into its own function Andrew Burgess
2025-07-20 10:20 ` [PATCH 5/7] gdb: create address map after parsing all DIE Andrew Burgess
2025-07-20 10:20 ` [PATCH 6/7] gdb: record block end addresses while parsing DIEs Andrew Burgess
2025-07-20 10:20 ` [PATCH 7/7] gdb: fix-up truncated inline function block ranges Andrew Burgess
2025-08-01  8:58 ` [PATCHv2 0/7] Inline Function Optimised Code Debug Improvements Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 1/7] gdb: improve line number lookup around inline functions Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 2/7] gdb: handle empty ranges for inline subroutines Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 3/7] gdb: split dwarf line table parsing in two Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 4/7] gdb: move block range recording into its own function Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 5/7] gdb: create address map after parsing all DIE Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 6/7] gdb: record block end addresses while parsing DIEs Andrew Burgess
2025-08-01  8:58   ` [PATCHv2 7/7] gdb: fix-up truncated inline function block ranges Andrew Burgess
2025-10-16 17:49   ` [PATCHv3 0/7] Inline Function Optimised Code Debug Improvements Andrew Burgess
2025-10-16 17:49     ` [PATCHv3 1/7] gdb: improve line number lookup around inline functions Andrew Burgess
2025-10-27 22:22       ` Tom Tromey
2025-12-17 14:32         ` Andrew Burgess
2025-12-17 14:48           ` Tom de Vries
2025-12-18 14:46             ` Andrew Burgess
2025-10-16 17:49     ` [PATCHv3 2/7] gdb: handle empty ranges for inline subroutines Andrew Burgess
2025-10-16 17:49     ` [PATCHv3 3/7] gdb: split dwarf line table parsing in two Andrew Burgess
2025-10-16 17:49     ` [PATCHv3 4/7] gdb: move block range recording into its own function Andrew Burgess
2025-10-27 22:45       ` Tom Tromey
2025-10-16 17:49     ` [PATCHv3 5/7] gdb: create address map after parsing all DIE Andrew Burgess
2025-10-27 22:56       ` Tom Tromey
2026-01-02 16:36         ` Andrew Burgess
2026-01-05 20:03           ` Tom Tromey
2026-01-05 21:37             ` Andrew Burgess
2026-01-06  0:53               ` Tom Tromey
2025-10-16 17:49     ` [PATCHv3 6/7] gdb: record block end addresses while parsing DIEs Andrew Burgess
2025-10-27 23:00       ` Tom Tromey
2025-10-16 17:49     ` [PATCHv3 7/7] gdb: fix-up truncated inline function block ranges Andrew Burgess
2026-02-04 10:43     ` [PATCHv3 0/7] Inline Function Optimised Code Debug Improvements Andrew Burgess
2025-08-01 15:41 ` [PATCH " Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox