One the projects I'm working on is a SyncML server, written from scratch in D, It's currently in testing mode, and we found that the server was mysteriously crashing. Unfortunatly, since it's threaded, and forked as a daemon, we didn't really want to run it under GDB, (and since GDB segfaults on startup anyway). we where at a bit of a quagmire about how to find the bug.
So after a bit of searching through code.google.com I came across the idea of catching the SIGSEGV signal and calling backtrace and backtrace_symbols
This little trick can product output that looks something like
/path/to/application [0xAAAAAA] << address of code /path/to/application [0xAAAAAA] << address of code /path/to/application [0xAAAAAA] << address of code /path/to/application [0xAAAAAA] << address of code
which initially seemed a bit cryptic, but by putting it together with addr2line can result in some great debugging information.
This is my little backtrace logger for the deamon logger.