[Issue 4181] GDB prints wrong value of TLS variables

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Jan 12 03:26:52 PST 2014


https://d.puremagic.com/issues/show_bug.cgi?id=4181



--- Comment #5 from Iain Buclaw <ibuclaw at ubuntu.com> 2014-01-12 03:26:48 PST ---
(In reply to comment #4)
> 
> Please no. Under windows -g works fine and I really don't want the debug
> information to look like C code. If this is done please make it unix only.

I'd hate to be the barer of bad news, but -g and -gc have been nearly identical
for quite a few years now.  Here's the current score.

1) The difference between -g and -gc on Windows is dchars are represented as
ulong (determined by a quick grep of 'symdebug' over the glue code.  Windows
debug format is either CV4 or CV8.

2) The difference between -g and -gc on Linux is DW_LANG_D vs DW_LANG_C89
(determined by diff'ing a objdump -g of two compiled objects).

So whatever misconception you have of -gc, it is wrong and this attitude should
be dropped.


I can't imagine things breaking on Windows deprecating -gc and removing (1) so
that dchar is *always* represented as dchar.

As for (2) something is sorely broken on Linux if DW_LANG_D is specified vs
DW_LANG_C89.  This may not be a problem for GDC perhaps because it emits
DW_OP_GNU_tls_address against the TLS symbols.  But it's still no excuse for
GDB to break debugging when this is missing.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list