メモ:ErlangのVMをgdb上で動かす

Erlangのソースを取って来て解凍する.

$ wget 'http://www.erlang.org/download/otp_src_R14B01.tar.gz'
$ tar xzfv otp_src_R14B01.tar.gz

コンパイルする.

$ cd otp_src_R14B01
$ ./configure
$ make

デバッグ用のフラグを立ててbeamをコンパイルする.FLAVOR=plainでbeam.debug,FLAVOR=smpでbeam.debug.smpが作成される.

$ export ERL_TOP=$PWD
$ cd erts/emulator
$ make debug FLAVOR=plain
$ make debug FLAVOR=smp

beam.debugとbeam.debug.smpが作成されているのを確認する.

$ cd ../../
$ ls bin/i686-pc-linux-gnu/
...
beam.debug
beam.debug.smp
...

Emacs上でgdbを動かす.

$ ./bin/cerl -gdb -debug

Emacsが起動したら,runと入力するとErlangVMであるbeamが実行される.あとは普通のgdbによるデバッグと同じ.