public inbox for dwz@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
                   ` (3 preceding siblings ...)
  2019-01-01  0:00 ` vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

Tom de Vries <vries at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Segfault for LTO GCC binary |dwz: dwz.c:8562:
                   |                            |adjust_exprloc: Assertion
                   |                            |`refd != NULL &&
                   |                            |!refd->die_remove' failed.

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

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

* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
  2019-01-01  0:00 ` [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

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

AFAIU, the problem is here in read_exprloc when handling a
DW_OP_GNU_parameter_ref:
...
          if (ref->die_ck_state == CK_KNOWN)
            {
              ref->die_ck_state = CK_BAD;
              while (!ref->die_root
                     && ref->die_parent->die_ck_state == CK_KNOWN)
                {
                  ref = ref->die_parent;
                  ref->die_ck_state = CK_BAD;
                }
            }
          else
            ref->die_ck_state = CK_BAD;
          if (unlikely (low_mem))
            {
              ref->die_referenced = 1;
              /* As .debug_loc adjustment is done after                         
                 write_info finishes, we need to keep the referenced            
                 DIEs around uncollapsed.  */
              if (need_adjust)
                ref->die_intercu_referenced = 1;
            }
...

The loop does not use a loop-private iteration variable, and consequently not
the ref, but the root parent of the ref gets marked with die_referenced and
die_intercu_referenced.

The tentative patch fixes this by moving the CK_BAD marking down.

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

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

* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #1)
> Created attachment 11601 [details]
> Tentative patch
> 

This also seems to fix the libqtscript_gui.so.1.0.0 "Couldn't find DIE
referenced by DW_OP_GNU_parameter_ref" failure from
https://bugzilla.redhat.com/show_bug.cgi?id=1564880#c11 .

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

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

* [Bug default/24195] New: Segfault for LTO GCC binary
@ 2019-01-01  0:00 marxin.liska at gmail dot com
  2019-01-01  0:00 ` [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed vries at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: marxin.liska at gmail dot com @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

            Bug ID: 24195
           Summary: Segfault for LTO GCC binary
           Product: dwz
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: default
          Assignee: nobody at sourceware dot org
          Reporter: marxin.liska at gmail dot com
                CC: dwz at sourceware dot org
  Target Milestone: ---

I noticed that once I build GCC with bootstrap-lto config:

File:
https://drive.google.com/file/d/19bfAvsNZYIH9kAl2u4U4t2eqciolqbqP/view?usp=sharing

$ dwz cc1
dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove'
failed.
Aborted (core dumped)

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

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

* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
                   ` (2 preceding siblings ...)
  2019-01-01  0:00 ` vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
Patch submitted: https://sourceware.org/ml/dwz/2019-q1/msg00022.html

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

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

* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
                   ` (4 preceding siblings ...)
  2019-01-01  0:00 ` vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

Tom de Vries <vries at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
https://sourceware.org/git/?p=dwz.git;a=commit;h=8e6ee6dc378d015c7ab5cfebb15e5afdf9936693

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

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

* [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed.
  2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
  2019-01-01  0:00 ` [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed vries at gcc dot gnu.org
@ 2019-01-01  0:00 ` vries at gcc dot gnu.org
  2019-01-01  0:00 ` vries at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: vries at gcc dot gnu.org @ 2019-01-01  0:00 UTC (permalink / raw)
  To: dwz

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

Tom de Vries <vries at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kloczko.tomasz at gmail dot com

--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> ---
*** Bug 24778 has been marked as a duplicate of this bug. ***

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

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

end of thread, other threads:[~2019-07-07  7:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-01  0:00 [Bug default/24195] New: Segfault for LTO GCC binary marxin.liska at gmail dot com
2019-01-01  0:00 ` [Bug default/24195] dwz: dwz.c:8562: adjust_exprloc: Assertion `refd != NULL && !refd->die_remove' failed vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries 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).