Date: Fri, 28 Aug 2009 20:23:34 +0100 From: Doug Rabson <dfr@rabson.org> To: FreeBSD Current <freebsd-current@freebsd.org> Subject: New BSD licensed debugger Message-ID: <8819E53E-9F96-43E2-B7F5-F5393F5AE126@rabson.org>
next in thread | raw e-mail | index | archive | help
As one or two of you know, I've been working recently on writing a new debugger, primarily for the FreeBSD platform. For various reasons, I've been writing it in a relatively obscure C-like language called D (see http://www.digitalmars.com/d/1.0/index.html for more details including a free download of a FreeBSD D compiler. So far, I have a pretty useful (if a little raw at the edges) command line debugger which supports ELF, Dwarf debugging information and (currently) 32 bit FreeBSD and Linux. The engine includes parsing and evaluation of arbitrary C expressions along with the usual debugging tools such as breakpoints, source code listing, single-step etc. All the code is new and BSD licensed. Currently, the thing supports userland debugging of i386 targets via ptrace and post-mortem core file debugging of same. I'll be adding amd64 support real soon (TM) and maybe support for GDB's remote debugging protocol later. If anyone is interested in taking a look at a 'Technology Preview', I've put up a git repository at http://people.freebsd.org/~dfr/ ngdb.git. To build it you need to install 'omake' from /usr/ports/ devel/omake and you will need a D compiler. There are three options there - DMD which you can download from http://www.digitalmars.com/d/download.html is free, closed source and works pretty well. GDC is a D front end to GCC and you can find it in ports - it works well enough but hasn't been updated for ages. Personally, I use LDC which is a D front end to LLVM but that doesn't build out-of-the box (I have a private hacked version of LDC and some associated libraries). Have fun with it and don't complain too much if it doesn't build/ breaks/eats your homework etc.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8819E53E-9F96-43E2-B7F5-F5393F5AE126>