public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local
@ 2020-04-09 11:52 vries at gcc dot gnu.org
2020-04-09 11:57 ` [Bug symtab/25807] " 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-09 11:52 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25807
Bug ID: 25807
Summary: [readnow] FAIL: gdb.threads/tls.exp: print
a_thread_local
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: ---
When running test-case gdb.threads/tls.exp with target board -readnow, we have:
...
(gdb) print a_thread_local^M
Cannot find thread-local storage for process 0, executable file tls/tls:^M
Cannot find thread-local variables on this target^M
(gdb) FAIL: gdb.threads/tls.exp: print a_thread_local
...
while with native we have:
...
(gdb) print a_thread_local^M
Cannot read `a_thread_local' without registers^M
(gdb) PASS: gdb.threads/tls.exp: print a_thread_local
...
The difference in behaviour can be explained as follows. Without -readnow, we
have two a_thread_locals, the def and the decl:
...
$ gdb -batch outputs/gdb.threads/tls/tls \
-ex "maint expand-symtabs" \
-ex "print a_thread_local" \
-ex "maint print symbols" \
| grep "a_thread_local;"
Cannot read `a_thread_local' without registers
int a_thread_local; computed at runtime
int a_thread_local; unresolved
...
and with -readnow, we have the opposite order:
...
$ gdb -readnow -batch outputs/gdb.threads/tls/tls \
-ex "maint expand-symtabs" \
-ex "print a_thread_local" \
-ex "maint print symbols" \
| grep "a_thread_local;"
Cannot find thread-local storage for process 0, executable file tls/tls:
Cannot find thread-local variables on this target
int a_thread_local; unresolved
int a_thread_local; computed at runtime
...
[ With the tentative fix for PR25764, submitted here (
https://sourceware.org/pipermail/gdb-patches/2020-April/167458.html ), we seem
to stabilize that search order and make the test fail without -readnow as well.
]
Anyway, this seems to be a variant of PR24985 - "Cannot print value of global
variable because decl in one CU shadows def in other CU", in the sense that we
probably prefer to find the "computed at runtime" symbol rather than the
"unresolved" symbol.
But, the tentative patch at PR24985 comment 3 doesn't fix this, because that
patch exploits the fact that the decl has an incomplete type, while in this
case the type is complete.
So, I'm filing this as a separate PR.
--
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/25807] [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local
2020-04-09 11:52 [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local vries at gcc dot gnu.org
@ 2020-04-09 11:57 ` vries at gcc dot gnu.org
2020-04-09 14:31 ` 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-09 11:57 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25807
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 12449
--> https://sourceware.org/bugzilla/attachment.cgi?id=12449&action=edit
Tentative patch
--
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/25807] [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local
2020-04-09 11:52 [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local vries at gcc dot gnu.org
2020-04-09 11:57 ` [Bug symtab/25807] " vries at gcc dot gnu.org
@ 2020-04-09 14:31 ` vries at gcc dot gnu.org
2020-04-23 13:42 ` cvs-commit at gcc dot gnu.org
2024-01-26 13:59 ` ssbssa at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-09 14:31 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25807
--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
Patch submitted:
https://sourceware.org/pipermail/gdb-patches/2020-April/167489.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/25807] [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local
2020-04-09 11:52 [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local vries at gcc dot gnu.org
2020-04-09 11:57 ` [Bug symtab/25807] " vries at gcc dot gnu.org
2020-04-09 14:31 ` vries at gcc dot gnu.org
@ 2020-04-23 13:42 ` cvs-commit at gcc dot gnu.org
2024-01-26 13:59 ` ssbssa at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-23 13:42 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25807
--- 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=de82891ce5b6d2c8109f512cd0732325f4cd0557
commit de82891ce5b6d2c8109f512cd0732325f4cd0557
Author: Tom de Vries <tdevries@suse.de>
Date: Thu Apr 23 15:42:47 2020 +0200
[gdb/symtab] Prefer def over decl (inter-CU case)
When running test-case gdb.threads/tls.exp with target board -readnow, we
have:
...
(gdb) print a_thread_local^M
Cannot find thread-local storage for process 0, executable file tls/tls:^M
Cannot find thread-local variables on this target^M
(gdb) FAIL: gdb.threads/tls.exp: print a_thread_local
...
while with native we have:
...
(gdb) print a_thread_local^M
Cannot read `a_thread_local' without registers^M
(gdb) PASS: gdb.threads/tls.exp: print a_thread_local
...
The difference in behaviour can be explained as follows. Without -readnow,
we
have two a_thread_locals, the def and the decl, each in a different CU:
...
$ gdb -batch outputs/gdb.threads/tls/tls \
-ex "maint expand-symtabs" \
-ex "print a_thread_local" \
-ex "maint print symbols" \
| grep "a_thread_local;"
Cannot read `a_thread_local' without registers
int a_thread_local; computed at runtime
int a_thread_local; unresolved
...
and with -readnow, we have the opposite order:
...
$ gdb -readnow -batch outputs/gdb.threads/tls/tls \
-ex "maint expand-symtabs" \
-ex "print a_thread_local" \
-ex "maint print symbols" \
| grep "a_thread_local;"
Cannot find thread-local storage for process 0, executable file tls/tls:
Cannot find thread-local variables on this target
int a_thread_local; unresolved
int a_thread_local; computed at runtime
...
Fix the FAIL by preferring the def over the decl (something we already do
intra-CU since the fix for PR24971, commit 93e55f0a03 "[gdb/symtab] Prefer
var
def over decl").
Build and reg-tested on x86_64-linux.
gdb/ChangeLog:
2020-04-23 Tom de Vries <tdevries@suse.de>
PR symtab/25807
* block.c (best_symbol, better_symbol): Promote to external.
* block.h (best_symbol, better_symbol): Declare.
* symtab.c (lookup_symbol_in_objfile_symtabs): Prefer def over
decl.
gdb/testsuite/ChangeLog:
2020-04-23 Tom de Vries <tdevries@suse.de>
* gdb.base/decl-before-def-decl.c: New test.
* gdb.base/decl-before-def-def.c: New test.
* gdb.base/decl-before-def.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/25807] [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local
2020-04-09 11:52 [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local vries at gcc dot gnu.org
` (2 preceding siblings ...)
2020-04-23 13:42 ` cvs-commit at gcc dot gnu.org
@ 2024-01-26 13:59 ` ssbssa at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: ssbssa at sourceware dot org @ 2024-01-26 13:59 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=25807
Hannes Domani <ssbssa at sourceware dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ssbssa at sourceware dot org
--- Comment #4 from Hannes Domani <ssbssa at sourceware dot org> ---
(In reply to Sourceware Commits from comment #3)
> The master branch has been updated by Tom de Vries <vries@sourceware.org>:
>
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;
> h=de82891ce5b6d2c8109f512cd0732325f4cd0557
>
> commit de82891ce5b6d2c8109f512cd0732325f4cd0557
> Author: Tom de Vries <tdevries@suse.de>
> Date: Thu Apr 23 15:42:47 2020 +0200
>
> [gdb/symtab] Prefer def over decl (inter-CU case)
Can this be closed?
--
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:[~2024-01-26 13:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-09 11:52 [Bug symtab/25807] New: [readnow] FAIL: gdb.threads/tls.exp: print a_thread_local vries at gcc dot gnu.org
2020-04-09 11:57 ` [Bug symtab/25807] " vries at gcc dot gnu.org
2020-04-09 14:31 ` vries at gcc dot gnu.org
2020-04-23 13:42 ` cvs-commit at gcc dot gnu.org
2024-01-26 13:59 ` ssbssa at sourceware dot 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).