A couple of thoughts/queries.

Cristian Vlasceanu cristian at zerobugs.org
Wed Dec 26 15:41:02 PST 2007


John Reimer wrote:
> On Wed, 26 Dec 2007 10:33:40 +0100, Lars Ivar Igesund wrote:
> 
>> Bill Baxter wrote:
>>> If you're not on Windows then I presume gdb works?  I guess that
>>> doesn't have any D-specific knowledge.  Support for D in zerobugs is
>>> still vaporware?
The debugger cannot help much when the debug information produced by the 
compiler is not 100% accurate.

>> I did a quick test, and zerobugs has at least some D support. Types
>> seems to be correctly demangled in the variables view, whereas functions
>> and method names in the stack trace are not. I wasn't immediately able
>> to pinpoint the location of my segfault though (a real one that I knew
>> of), although the stacktrace showed up. Definately better looking than
>> gdb, all in all :)
>  

An outline of how ZeroBUGS handles stack unwinding: if there is DWARF 
information present, then look for frame-unwinding information. 
Otherwise, assume the System V ABI for the i386 and PowerPC and Itanium 
ABI for X86_64.

Again, do not blame the debugger for what the compiler does not produce.

Unless you have a 100% accurate stack trace from another debugger for 
the same executable and platform, in which case I do beg you to send me 
a bug report.


> Yes, just recently I've been experimenting with zerobugs.  It was much 
> easier to use with D than the other linux debuggers since D symbols are 
> demangled. 

I use a very slightly modified version of Thomas Kuehne's demangler 
(basically I added a function to show his copyright when I display the 
About window, and tweaked the config.h). It is built as a shared object 
so  you are free to tinker with it, the code is here: 
http://www.zerobugs.org/demangle_d.tgz



> The stacktrace does kind of show the general position of the 
> segfault also.  I like the way it opens any associated shared libraries 
> and shows the disassembly in a new tab as you step into the function 
> calls.
> 
> One frustration is that char[] still are represented as a length and 
> pointer, thus you don't get to see the text object associated with it. 
> But even then, sometimes you can see it by expanding the related tree for 
> the ptr object.
> 
Do you have an associative array of chars, or just char[]? Associative 
arrays do not work yet (it is coming though, I promise), but char[] 
should work I just tried it today with dmd 2.0, see snapshot here: 
http://zero-bugs.com/zero-char.png

Best Regards and a Happy new Year();
  Cristian



More information about the Digitalmars-d mailing list