This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug symtab/9384] GDB can't find __thread variable in C++ program
- From: "jan dot kratochvil at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: 13 Apr 2009 16:10:49 -0000
- Subject: [Bug symtab/9384] GDB can't find __thread variable in C++ program
- References: <20070626234801.9384.jimb@codesourcery.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From jan dot kratochvil at redhat dot com 2009-04-13 16:10 -------
It started working on post-6.8 GDB but it is not completely correct as it works
through the .symtab TLS resolving now.
http://sourceware.org/ml/gdb/2009-04/msg00100.html =>
Checked the difference, both g++-4.3 and gcc-4.1 use more simple format as
read by `readelf -wi':
<1><88>: Abbrev Number: 7 (DW_TAG_variable)
<89> DW_AT_name : i
[snip]
<91> DW_AT_external : 1
<92> DW_AT_location : 10 byte block: 3 0 0 0 0 0 0 0 0 e0 (DW_OP_addr:
0; DW_OP_GNU_push_tls_address or DW_OP_HP_unknown)
while g++-4.1 uses:
<2><d2>: Abbrev Number: 7 (DW_TAG_variable)
DW_AT_name : i
[snip]
DW_AT_external : 1
DW_AT_declaration : 1
<1><de>: Abbrev Number: 8 (DW_TAG_variable)
DW_AT_specification: <d2>
DW_AT_location : 10 byte block: 3 0 0 0 0 0 0 0 0 e0 (DW_OP_addr: 0;
DW_OP_GNU_push_tls_address)
Which is perfectly valid DWARF but current GDB cannot cope with it.
It starts working in post-6.8 FSF GDB because it gets resolved as an external
TLS reference. External TLS references did not work before. It is not
completely correct but in practice it works. Fixed by this patch:
http://sourceware.org/ml/gdb/2008-07/threads.html#00341
http://sourceware.org/ml/gdb-patches/2008-08/threads.html#00026
http://sourceware.org/ml/gdb-patches/2008-09/threads.html#00204
http://sourceware.org/ml/gdb-patches/2008-11/threads.html#00706
http://sourceware.org/ml/gdb-patches/2008-12/threads.html#00003
http://sourceware.org/ml/gdb-cvs/2008-12/msg00009.html
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |jan dot kratochvil at redhat
| |dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=9384
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.