Hi Andrey, I use Distel[1] (Distributed emacs lisp for Erlang), a set of emacs extensions that create a full development environment for Erlang. It connects to a running node so one gets full access to the syntax_tools and source code of Erlang, all at run time. As this brief white paper points out it goes further than typical elisp hacks as it imports the Erlang distributed model into emacs. I keep hoping to find some time to push it a little further and provide better support for working with BigCouch, our clustered CouchDB at Cloudant.
I keep up my own fork of it as there aren't too many of us out there and I needed to fix a few things. I also include in that project some tweaks to the Erlang mode that ships with Erlang to accommodate the CouchDB format conventions. It provides a full symbolic debugging environment. Though it's useful and I think I've found a few CouchDB bugs with it, given the nature of OTP programming it's a little harder when you have breakpoints that hit 50 processes. It was great for stepping thru the btree code. The most useful features are the navigation (M-. M-,) and who_calls (C-c C-d w) The lack of use of who_calls I believe is the major reason we often discover dead code that's been there forever. As an aside the use of type specs and dialyzer go a long way towards finding errors at compile time. Regards, Bob [1] https://github.com/bdionne/distel/raw/master/doc/gorrie02distel.pdf [2] https://github.com/bdionne/distel On Apr 28, 2011, at 9:03 AM, Andrey Somov wrote: > Hi all, > in order to understand how CouchDB works I want be able to run the > application under debugger. Unfortunately it does not look like an easy > task. > The information provided on the wiiki ( > http://wiki.apache.org/couchdb/Running%20CouchDB%20in%20Dev%20Mode) may be > enough for a > professional Erlang developer but it is not enough for anyone who learns > Erlang together with CouchDB. > I could not find any resource which gives step-by-step instructions on how > to organise an effective development environment for CouchDB. > > Can someone point me to such a guide/tutorial/manual/screencast ? > > Thanks, > Andrey