public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found
@ 2020-04-07 11:12 vries at gcc dot gnu.org
2020-04-07 11:12 ` [Bug symtab/25796] " vries at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-07 11:12 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25796
Bug ID: 25796
Summary: Symbol with inherited DW_AT_const_value not found
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: symtab
Assignee: unassigned at sourceware dot org
Reporter: vries at gcc dot gnu.org
Target Milestone: ---
[ Reported here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94469#c9 ]
Consider a test-case with dwarf (related to variable aaa):
...
<0><d2>: Abbrev Number: 2 (DW_TAG_partial_unit)
<1><eb>: Abbrev Number: 4 (DW_TAG_variable)
<ec> DW_AT_name : aaa
<f0> DW_AT_type : <0xe4>
<f4> DW_AT_const_value : 1
<0><10c>: Abbrev Number: 2 (DW_TAG_compile_unit)
<10e> DW_AT_name : <artificial>
<1><11b>: Abbrev Number: 3 (DW_TAG_variable)
<11c> DW_AT_abstract_origin: <0xeb>
...
When running the test-case, we see:
...
(gdb) p aaa^M
No symbol "aaa" in current context.^M
(gdb) FAIL: gdb.dwarf2/imported-unit-abstract-const-value.exp: p aaa
...
while with target board readnow.exp, we have:
...
(gdb) p aaa^M
$1 = 1^M
...
--
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/25796] Symbol with inherited DW_AT_const_value not found
2020-04-07 11:12 [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found vries at gcc dot gnu.org
@ 2020-04-07 11:12 ` vries at gcc dot gnu.org
2020-04-07 11:28 ` vries at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-07 11:12 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25796
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
The problem is due to the fact that there's no aaa symbol in the partial
symtabs:
...
Partial symtab for source file <artificial>@0x101 (object 0x351cf40)^M
...
Global partial symbols:^M
`main', function, 0x4004a7^M
^M
...
which is due to the fact that when attempting to add the symbol corresponding
to DIE 0x11b in add_partial_symbol:
...
(gdb) p /x pdi->sect_off
$4 = 0x11b
(gdb) p pdi.has_const_value
$5 = 0
...
it seems the DW_AT_const_value was not inherited from DIE 0xeb, and
consequently we leave without adding a partial symbol.
--
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/25796] Symbol with inherited DW_AT_const_value not found
2020-04-07 11:12 [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found vries at gcc dot gnu.org
2020-04-07 11:12 ` [Bug symtab/25796] " vries at gcc dot gnu.org
@ 2020-04-07 11:28 ` vries at gcc dot gnu.org
2020-04-07 15:33 ` cvs-commit at gcc dot gnu.org
2020-04-07 15:33 ` vries at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-07 11:28 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25796
--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 12443
--> https://sourceware.org/bugzilla/attachment.cgi?id=12443&action=edit
Tentative patch with test-case
Note: When running the test-case with cc-with-debug-names, the "print aaa" test
fails.
That's PR25791, the test passes when applying the proposed patch for that one.
--
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/25796] Symbol with inherited DW_AT_const_value not found
2020-04-07 11:12 [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found vries at gcc dot gnu.org
2020-04-07 11:12 ` [Bug symtab/25796] " vries at gcc dot gnu.org
2020-04-07 11:28 ` vries at gcc dot gnu.org
@ 2020-04-07 15:33 ` cvs-commit at gcc dot gnu.org
2020-04-07 15:33 ` vries at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-07 15:33 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25796
--- Comment #3 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=25c11acac349bf6e77a233c7604bf8e04b8a1424
commit 25c11acac349bf6e77a233c7604bf8e04b8a1424
Author: Tom de Vries <tdevries@suse.de>
Date: Tue Apr 7 17:33:05 2020 +0200
[gdb/symtab] Add symbol with inherited DW_AT_const_value to psymtabs
Consider the test-case added in this patch, with resulting dwarf (related
to
variable aaa):
...
<0><d2>: Abbrev Number: 2 (DW_TAG_partial_unit)
<1><eb>: Abbrev Number: 4 (DW_TAG_variable)
<ec> DW_AT_name : aaa
<f0> DW_AT_type : <0xe4>
<f4> DW_AT_const_value : 1
<0><10c>: Abbrev Number: 2 (DW_TAG_compile_unit)
<10e> DW_AT_name : <artificial>
<1><11b>: Abbrev Number: 3 (DW_TAG_variable)
<11c> DW_AT_abstract_origin: <0xeb>
...
When running the test-case, we see:
...
(gdb) p aaa^M
No symbol "aaa" in current context.^M
(gdb) FAIL: gdb.dwarf2/imported-unit-abstract-const-value.exp: p aaa
...
while with target board readnow.exp, we have:
...
(gdb) p aaa^M
$1 = 1^M
...
This is due to the fact that there's no aaa symbol in the partial symtabs:
...
Partial symtab for source file <artificial>@0x101 (object 0x351cf40)^M
...
Global partial symbols:^M
`main', function, 0x4004a7^M
^M
...
which is due to the fact that when attempting to add the symbol
corresponding
to DIE 0x11b in add_partial_symbol:
...
(gdb) p /x pdi->sect_off
$4 = 0x11b
(gdb) p pdi.has_const_value
$5 = 0
...
it seems the DW_AT_const_value was not inherited from DIE 0xeb, and
consequently we leave without adding a partial symbol.
Fix this by making sure that partial_die_info::has_const_value is inherited
in partial_die_info::fixup.
Build and reg-tested on x86_64-linux.
Tested test-case with target boards readnow, cc-with-gdb-index and
cc-with-debug-names. The "print aaa" test fails for cc-with-gdb-index,
that's
PR25791, the test passes when applying the corresponding proposed patch.
gdb/ChangeLog:
2020-04-07 Tom de Vries <tdevries@suse.de>
PR symtab/25796
* dwarf2/read.c (can_have_DW_AT_const_value_p): New function.
(partial_die_info::fixup): Inherit has_const_value.
gdb/testsuite/ChangeLog:
2020-04-07 Tom de Vries <tdevries@suse.de>
PR symtab/25796
* gdb.dwarf2/imported-unit-abstract-const-value.exp: New 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/25796] Symbol with inherited DW_AT_const_value not found
2020-04-07 11:12 [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found vries at gcc dot gnu.org
` (2 preceding siblings ...)
2020-04-07 15:33 ` cvs-commit at gcc dot gnu.org
@ 2020-04-07 15:33 ` vries at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-07 15:33 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25796
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Patch with test-case committed, marking resolved-fixed.
--
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:[~2020-04-07 15:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-07 11:12 [Bug symtab/25796] New: Symbol with inherited DW_AT_const_value not found vries at gcc dot gnu.org
2020-04-07 11:12 ` [Bug symtab/25796] " vries at gcc dot gnu.org
2020-04-07 11:28 ` vries at gcc dot gnu.org
2020-04-07 15:33 ` cvs-commit at gcc dot gnu.org
2020-04-07 15:33 ` 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).