Stack tracing assert for linux/D2

BCS none at anon.com
Fri Mar 5 13:22:04 PST 2010


Hello Jordi,

> BCS wrote:
> 
>> I just created a module that generates stack traces on asserts (D2):
>> 
>> http://www.dsource.org/projects/scrapple/browser/trunk/backtrace_asse
>> rt/debugging.d
>> 
>> Just compile and link it.
>> 
>> It does have some not exactly ideal bits:
>> 
>> -it won't work nicely unless you link with gcc and add the -rdynamic
>> flag.
>> -accessing some of the posix stuff fubared my link (unresolved
>> ModuleInfos) so I had to add the prototypes directly (yuck)
>> -it uses the c function dprintf that on some system does what I want
>> (print to a low level file stream) and on some system does something
>> totaly different.
>> -it has the expected executable name and the location of addr2line
>> hard
>> coded
>> (any ideas on how to fix these issues welcomed)
>> 
> that would be great if i manage to make it work.... for now i get:
> 
> /usr/bin/ld: optind: TLS definition in
> [...]/crosa/xfbuild/debug/core-sys-posix-unistd.o section .tbss
> mismatches non-TLS definition in /lib/libc.so.6 section .data
> /lib/libc.so.6: could not read symbols: Bad value
> collect2: ld returned 1 exit status

Taking a wild stab, try not linking in core-sys-posix-unistd.o (I got a different 
error trying to include it) either by mucking with the link command or by 
convincing your build that it's just prototypes for a library.

> I am using xfbuild, so i have to pass -L-export-dynamic instead of
> "-rdynamic.

I'm not sure backtrace is even officially part of posix and I don't think 
it's ever been part of phobos. It's the posix function/enum from core.sys.posix 
that were causing me problems.


-- 
... <IXOYE><





More information about the Digitalmars-d-announce mailing list