Re: [PATCH v4 0/8] Correctly handle inline functions with dwz

Tom de Vries
2026-02-24T09:46:46Z

On 2/24/26 2:16 AM, Tom Tromey wrote:
> The new indexer does not correctly handle inline functions when 'dwz'
> is used to compress the DWARF. This series fixes the bug, cleaning up
> a number of other things on the way.
>
> I've separately regression tested each patch in this series on x86-64
> Fedora 41. I've also regression tested the series as a whole with the
> dwz, gdb-index, and debug-names boards.
>
> Even with that I messed up somehow, so v1 didn't actually fix the bug
> in question. I must have modified the patches after testing..?
>
> Anyway in v2 I've moved the line recording the CU inclusion and added
> a comment explaining the placement. I re-ran the aformentioned tests
> and didn't touch anything.
>

Hi Tom,

I've looked through the series, reviewed the smaller patches and browsed
the larger one (#7).

LGTM.

Acked-By: Tom de Vries <tdevries@suse.de>

Thanks,
- Tom

> Signed-off-by: Tom Tromey <tom@tromey.com>
> ---
> Changes in v4:
> - Update assert in .debug_names writer, and add regression test
> - Link to v3: https://inbox.sourceware.org/gdb-patches/20260220-dw-inline-fixup-pr-symtab-30728-2-v3-0-98ae8ab28fab@tromey.com
>
> Changes in v3:
> - Minor updates per review
> - Rebased; which required some changes to the
> iterate_over_one_compunit_symtab patch
> - Link to v2: https://inbox.sourceware.org/gdb-patches/20260126-dw-inline-fixup-pr-symtab-30728-2-v2-0-8ab183d1911c@tromey.com
>
> Changes in v2:
> - Fixed fix from Tom de Vries for IS_INLINED debug display
> - Moved line to record inclusion
> - Link to v1: https://inbox.sourceware.org/gdb-patches/20260125-dw-inline-fixup-pr-symtab-30728-2-v1-0-e9973a4a401a@tromey.com
>
> ---
> Tom Tromey (8):
> Don't call add_dependence from index_imported_unit
> Skip partial units in process_psymtab_comp_unit
> Don't consider DW_TAG_inlined_subroutine as interesting
> Combine two cases in cooked_index_functions::search
> Remove C++ special case from process_imported_unit_die
> Have iterate_over_one_compunit_symtab search included symtabs
> Handle inline functions with dwz
> Update .debug_names documentation
>
> gdb/doc/gdb.texinfo | 37 +++++
> gdb/dwarf2/abbrev.c | 1 -
> gdb/dwarf2/cooked-index-entry.c | 24 ++++
> gdb/dwarf2/cooked-index-entry.h | 39 +++++-
> gdb/dwarf2/cooked-index-worker.c | 14 ++
> gdb/dwarf2/cooked-index-worker.h | 26 ++--
> gdb/dwarf2/cooked-indexer.c | 60 ++++++---
> gdb/dwarf2/cooked-indexer.h | 8 +-
> gdb/dwarf2/cu.h | 6 +-
> gdb/dwarf2/index-write.c | 224 ++++++++++++++++++-------------
> gdb/dwarf2/read.c | 85 +++++++-----
> gdb/dwarf2/read.h | 37 +++++
> gdb/symfile-debug.c | 23 ++--
> gdb/testsuite/gdb.cp/breakpoint-locs.exp | 8 ++
> 14 files changed, 415 insertions(+), 177 deletions(-)
> ---
> base-commit: 2a2b24ecc13988a6d87619f53b36faa2bcb61beb
> change-id: 20260125-dw-inline-fixup-pr-symtab-30728-2-7c31bf38fbe3
>
> Best regards,