2 Tags: en, d, dgc, debug, ldc, gold, dmd, tango, rant, parental advisory
4 .. warning:: Rant ahead.
6 If `Matt Groeing`__ would ever written a garbage collector I'm sure he would
7 made a book in the `Life in Hell`__ series called **Debug is Hell**.
9 __ http://en.wikipedia.org/wiki/Matt_Groening
10 __ http://en.wikipedia.org/wiki/Life_in_Hell
12 You can't rely on anything: `unit tests`__ are useless, they
13 depend on your code to run and you can't get a decent backtrace ever using
14 a debugger (the runtime calls seems to hidden to the debugger). I don't know if
15 the last one is a compiler issue (I'm using DMD_ right now because my LDC_
18 __ http://www.digitalmars.com/d/1.0/class.html#UnitTest
20 Add that to the fact that `GNU Gold doesn't work`__, `DMD doesn't work`__,
21 Tango doesn't work [*]_ and `LDC doesn't work`__, and that it's already hard to
22 debug in D__ because most of the mainstream tools (gdb__, binutils__,
23 valgrind__) don't support the language (can't demangle D symbols for instance)
24 and you end up with a very hostile environment to work with.
26 __ http://sourceware.org/bugzilla/show_bug.cgi?id=10126
27 __ http://d.puremagic.com/issues/show_bug.cgi?id=2932
28 __ http://www.dsource.org/projects/ldc/ticket/282
29 __ http://www.digitalmars.com/d/1.0/
30 __ http://www.gnu.org/software/gdb/
31 __ http://www.gnu.org/software/binutils/
32 __ http://valgrind.org/
34 Anyway, it was a very unproductive weekend, my statistics gathering code seems
35 to have some nasty bug and I'm not being able to find it.
37 PS: I want to apologize in advance to the developers of `GNU Gold`__, `DMD`_,
38 `Tango`__ and `LDC`_ because they make great software, much less crappier than
39 mine (well, to be honest I'm not so sure about DMD_ ;-P), it's just a bad
40 weekend. Thank you for your hard work, guys =)
42 __ http://en.wikipedia.org/wiki/Gold_(linker)
43 __ http://www.dsource.org/projects/tango
45 .. _DMD: http://www.digitalmars.com/d/1.0/dmd-linux.html
46 .. _LDC: http://www.dsource.org/projects/ldc
48 .. [*] Tango trunk is supposed to be broken for Linux
50 .. vim: set et sw=4 sts=4 :