public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file
@ 2023-09-11 15:04 vries at gcc dot gnu.org
  2023-09-11 15:08 ` [Bug symtab/30838] " vries at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2023-09-11 15:04 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30838

            Bug ID: 30838
           Summary: [gdb/symtab] Support .debug_types section in
                    .gnu_debugaltlink file
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: symtab
          Assignee: unassigned at sourceware dot org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

There are two methods to factor out type information in a dwarf4 executable:
- use -fdebug-info-types to generate type units in a .debug_types section, and
- use dwz to create partial units.

The dwz method has an extra benefit: it also allows to factor out information
between executables into a newly created .dwz file, pointed to by a
.gnu_debugaltlink section.

There is nothing prohibiting a .gnu_debugaltlink file to contain a
.debug_types section.

It's just not generated by dwz atm, and consequently gdb has no support for it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug symtab/30838] [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file
  2023-09-11 15:04 [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file vries at gcc dot gnu.org
@ 2023-09-11 15:08 ` vries at gcc dot gnu.org
  2023-09-11 15:16 ` vries at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2023-09-11 15:08 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30838

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 15107
  --> https://sourceware.org/bugzilla/attachment.cgi?id=15107&action=edit
partial patch

The patch contains a test-case, and some fixes in the dwarf reader, which allow
the test-case to pass.

It doesn't fix the target board cc-with-gdb-index case though.  The test-case
passes, but the .gdb_index section in the exec is quietly ignored, because
there's no .gdb_index section in the dwz file.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug symtab/30838] [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file
  2023-09-11 15:04 [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file vries at gcc dot gnu.org
  2023-09-11 15:08 ` [Bug symtab/30838] " vries at gcc dot gnu.org
@ 2023-09-11 15:16 ` vries at gcc dot gnu.org
  2023-09-12  8:44 ` vries at gcc dot gnu.org
  2023-09-20 14:05 ` cvs-commit at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2023-09-11 15:16 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30838

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
I'm not sure it makes sense at this point to explore this further, given that
there's no regular way to generate dwarf like this, but I'd like this PR to
stay open, such that I can reference it from the source code when throwing an
error to say this is unsupported.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug symtab/30838] [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file
  2023-09-11 15:04 [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file vries at gcc dot gnu.org
  2023-09-11 15:08 ` [Bug symtab/30838] " vries at gcc dot gnu.org
  2023-09-11 15:16 ` vries at gcc dot gnu.org
@ 2023-09-12  8:44 ` vries at gcc dot gnu.org
  2023-09-20 14:05 ` cvs-commit at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2023-09-12  8:44 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30838

--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #2)
> when
> throwing an error to say this is unsupported.

https://sourceware.org/pipermail/gdb-patches/2023-September/202354.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug symtab/30838] [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file
  2023-09-11 15:04 [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file vries at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-09-12  8:44 ` vries at gcc dot gnu.org
@ 2023-09-20 14:05 ` cvs-commit at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-09-20 14:05 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30838

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vries@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=973db6fae304c2bcafff5f169610f663adc9e817

commit 973db6fae304c2bcafff5f169610f663adc9e817
Author: Tom de Vries <tdevries@suse.de>
Date:   Wed Sep 20 16:05:55 2023 +0200

    [gdb/symtab] Error out for .debug_types section in dwz file

    There are two methods to factor out type information in a dwarf4
executable:
    - use -fdebug-info-types to generate type units in a .debug_types section,
and
    - use dwz to create partial units.

    The dwz method has an extra benefit: it also allows to factor out
information
    between executables into a newly created .dwz file, pointed to by a
    .gnu_debugaltlink section.

    There is nothing prohibiting a .gnu_debugaltlink file to contain a
    .debug_types section.

    It's just not generated by dwz or any other tool atm, and consequently gdb
has
    no support for it.  Enhancement PR symtab/30838 is open about the lack of
    support.

    Make the current situation explicit by emitting a dwarf error:
    ...
    (gdb) file struct-with-sig-2^M
    Reading symbols from struct-with-sig-2...^M
    Dwarf Error: .debug_types section not supported in dwz file^M
    ...
    and add an assert in write_gdbindex:
    ...
    +      /* See enhancement PR symtab/30838.  */
    +      gdb_assert (!(per_cu->is_dwz && per_cu->is_debug_types));
    ...
    to clarify why we can use:
    ...
          data_buf &cu_list = (per_cu->is_debug_types
                               ? types_cu_list
                               : per_cu->is_dwz ? dwz_cu_list :
objfile_cu_list);
    ...

    The test-case is a modified copy from gdb.dwarf2/struct-with-sig.exp, so it
    keeps the copyright years range.

    Tested on x86_64-linux.

    Tested-By: Guinevere Larsen <blarsen@redhat.com>

    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30838

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

end of thread, other threads:[~2023-09-20 14:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-11 15:04 [Bug symtab/30838] New: [gdb/symtab] Support .debug_types section in .gnu_debugaltlink file vries at gcc dot gnu.org
2023-09-11 15:08 ` [Bug symtab/30838] " vries at gcc dot gnu.org
2023-09-11 15:16 ` vries at gcc dot gnu.org
2023-09-12  8:44 ` vries at gcc dot gnu.org
2023-09-20 14:05 ` cvs-commit at gcc dot gnu.org

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