[0/8] Handle foreign type units in .debug_names

Message ID 20260316232042.368080-1-simon.marchi@polymtl.ca
Headers
Series Handle foreign type units in .debug_names |

Message

Simon Marchi March 16, 2026, 11:19 p.m. UTC
  From: Simon Marchi <simon.marchi@polymtl.ca>

Foreign type units is a fancy name for type units in .dwo files.

As we stand, in the presence of foreign type units, we produce bogus
indexes (both .gdb_index and .debug_names).  So I think the minimum
would be to refuse creating indexes if there are foreign type units.
However, this series adds support for writing them to .debug_name and
reading them back.

For .gdb_index, the series just makes GDB refuse to create an index in
that case.

Note that this series depends on the enumerate series here:

https://inbox.sourceware.org/gdb-patches/20260220202002.860008-1-simon.marchi@efficios.com/T/#m75d30311589e79b52dcbdd840f8843ffa207000f

Simon Marchi (8):
  gdb: refuse to produce .gdb_index when skeletonless type units are
    present
  gdb/dwarf: move dwo_unit and dwo_file to read.h
  gdb/dwarf: move dwarf2_cu::section to cu.c
  gdb/dwarf: add dwo_file::find_tus
  gdb/dwarf: generate foreign type units in .debug_names
  gdb/dwarf: add debug output in read-debug-names.c
  gdb/dwarf: add more context to complaints in
    mapped_debug_names_reader::scan_one_entry
  gdb/dwarf: read foreign type units

 gdb/doc/gdb.texinfo                           |   6 +
 gdb/dwarf2/cu.c                               |  11 +
 gdb/dwarf2/index-write.c                      | 174 ++++++++-
 gdb/dwarf2/read-debug-names.c                 | 355 +++++++++++++++---
 gdb/dwarf2/read.c                             | 349 ++++++++---------
 gdb/dwarf2/read.h                             | 208 +++++++++-
 gdb/dwarf2/types.h                            |   2 +
 ...dwarf5-fission-debug-types-debug-names.exp |  29 ++
 .../gdb.dwarf2/gdb-index-skeletonless-tu.c    |  23 ++
 .../gdb.dwarf2/gdb-index-skeletonless-tu.exp  | 103 +++++
 gdbsupport/common-utils.h                     |  12 +
 11 files changed, 1032 insertions(+), 240 deletions(-)
 create mode 100644 gdb/testsuite/boards/dwarf5-fission-debug-types-debug-names.exp
 create mode 100644 gdb/testsuite/gdb.dwarf2/gdb-index-skeletonless-tu.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/gdb-index-skeletonless-tu.exp


base-commit: 9cc83ec0ce9b4b75e8cd2b0c46f23d4cbf4b2f2b
prerequisite-patch-id: 44023c5aa2f90e676c8b6f2479de04cf3ccb86fa
prerequisite-patch-id: acbee56e54b4f2ebd7a2b321eae58521699d66a3
prerequisite-patch-id: 1fe50e2f79d2cbbb73a5aff3b2f87506466443c2