經常的時候看大型工程的時候 碰到一二個地方實在不明白他是如何運作的 這時候最好的工具就是debugger 如gdb,的backtrace 可以得到完整的函數調用棧。在linux下推薦使用ddd, 俺的centos5 下標準版本沒有安裝ddd 順手下載個安裝就好了(標準版本卻個motif-devel yum下就好)。ddd圖形界面方便查看函數和變量,還有點擊跳轉功能。 附上幾個調試erlang的腳本,希望能夠方便大家。
1.
[root@test98 ~]# cat gdb_beam
#! /bin/bash
ddd -x gdb.init /usr/local/lib/erlang/erts-5.5.5/bin/beam
2.
[root@test98 ~]# cat gdb.init
set arg -- -root /usr/local/lib/erlang -progname erl -- -home /root
3.
[root@test98 ~]# tail .bash_profile -n 13
export PATH=$PATH:/usr/local/lib/erlang/erts-5.5.5/bin
ROOTDIR=/usr/local/lib/erlang
BINDIR=$ROOTDIR/erts-5.5.5/bin
EMU=beam
PROGNAME=`echo $0 | sed 's/.*\///'`
export EMU
export ROOTDIR
export BINDIR
export PROGNAME
export EDITOR=vim
export LANG=utf8
上面的腳本是針對beam 的。
如果你要調試beam.smp beam.hybrid 可以erl -smp true +K true -emu_args 得到參數
Executing: /usr/local/lib/erlang/erts-5.5.5/bin/beam.smp /usr/local/lib/erlang/erts-5.5.5/bin/beam.smp -K true -- -root /usr/local/lib/erlang -progname erl -- -home /root -smp true
把以上腳本改下就方便多了。
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢】