public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug symtab/24620] [cc-with-gdb-index] SIGSEGV in write_one_signatured_type in fission-reread
Date: Tue, 02 Feb 2021 07:37:50 +0000	[thread overview]
Message-ID: <bug-24620-4717-FJNztFCjIv@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-24620-4717@http.sourceware.org/bugzilla/>

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

--- Comment #6 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=2bd3e4b8d2580839a457e221d4e1e09105248215

commit 2bd3e4b8d2580839a457e221d4e1e09105248215
Author: Tom de Vries <tdevries@suse.de>
Date:   Tue Feb 2 08:37:45 2021 +0100

    [gdb/symtab] Fix assert in write_one_signatured_type

    When running test-case gdb.dwarf2/fission-reread.exp with target board
    cc-with-gdb-index, we run into an abort during the generation of the
gdb-index
    by cc-with-tweaks.sh:
    ...
    build/gdb/testsuite/cache/gdb.sh: line 1: 27275 Aborted  (core dumped)
    ...

    This can be reproduced on the command line like this:
    ...
    $ gdb -batch ./outputs/gdb.dwarf2/fission-reread/fission-reread \
      -ex 'save gdb-index  ./outputs/gdb.dwarf2/fission-reread'
    warning: Could not find DWO TU fission-reread.dwo(0x9022f1ceac7e8b19) \
      referenced by TU at offset 0x0 [in module fission-reread]
    warning: Could not find DWO CU fission-reread.dwo(0x807060504030201) \
      referenced by CU at offset 0x561 [in module fission-reread]
    Aborted (core dumped)
    ...

    The abort is a segfault due to a using a nullptr psymtab in
    write_one_signatured_type.

    The problem is that we're trying to write index entries for the type unit
    with signature:
    ...
    (gdb) p /x entry->signature
    $2 = 0x9022f1ceac7e8b19
    ...
    which is a skeleton type unit:
    ...
    Contents of the .debug_types section:

      Compilation Unit @ offset 0x0:
       Length:        0x4a (32-bit)
       Version:       4
       Abbrev Offset: 0x165
       Pointer Size:  4
       Signature:     0x9022f1ceac7e8b19
       Type Offset:   0x0
     <0><17>: Abbrev Number: 2 (DW_TAG_type_unit)
        <18>   DW_AT_comp_dir    : /tmp/src/gdb/testsuite
        <2f>   DW_AT_GNU_dwo_name: fission-reread.dwo
        <42>   DW_AT_GNU_pubnames: 0x0
        <46>   DW_AT_GNU_pubtypes: 0x0
        <4a>   DW_AT_GNU_addr_base: 0x0
    ...
    referring to a .dwo file, but as the warnings show, the .dwo file is not
    found.

    Fix this by skipping the type unit in write_one_signatured_type if
    psymtab == nullptr.

    Tested on x86_64-linux.

    gdb/ChangeLog:

    2021-02-02  Tom de Vries  <tdevries@suse.de>

            PR symtab/24620
            * dwarf2/index-write.c (write_one_signatured_type): Skip if
            psymtab == nullptr.

    gdb/testsuite/ChangeLog:

    2021-02-02  Tom de Vries  <tdevries@suse.de>

            PR symtab/24620
            * gdb.dwarf2/fission-reread.exp: Add test-case.

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

  parent reply	other threads:[~2021-02-02  7:37 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-24620-4717@http.sourceware.org/bugzilla/>
2020-04-17  8:58 ` [Bug gdb/24620] " vries at gcc dot gnu.org
2021-01-29 20:34 ` vries at gcc dot gnu.org
2021-02-01 10:20 ` [Bug symtab/24620] " vries at gcc dot gnu.org
2021-02-01 14:44 ` vries at gcc dot gnu.org
2021-02-01 14:45 ` vries at gcc dot gnu.org
2021-02-02  7:37 ` cvs-commit at gcc dot gnu.org [this message]
2021-02-02  7:40 ` vries at gcc dot gnu.org

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=bug-24620-4717-FJNztFCjIv@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@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).