像使用gdb一样,使用perl debugger进行调试

来源:转载


调试perl脚本,通过-d选项来启动perl debugger,例如:

$ perl -d ./test.pl

这里我们先花点时间,把perl的调试环境配置的好使些。

1、增加对Readline的支持

缺省的perl调试器不支持Readline功能,所以,如果你想按up键往前翻历史命令的话,会出现如下乱码:

^[[A^[[A^[[A^[[A

需要安装模块: Term::ReadKey,Term::ReadLine,Term::ReadLine::Perl(其中后两个我没搞清楚是否重复,反正全装上了)

安装模块的方法,参见 http://www.cpan.org/modules/INSTALL.html

2、使用.perldb文件

这个类似于gdb的.gdbinit,可以用来在调试器启动的时候,做些配置工作,预先执行一些命令。需要注意的是,需要将该文件的权限设定为只有创建者可写,即:

-rw-r--r--

否则,perl debugger出于安全的考虑,不会去加载这个文件:

perldb: Must not source insecure rcfile /home/xmj/.perldb. You or the superuser must be the owner, and it must not be writable by anyone but its owner.

3、打印数组,哈希变量

可以使用Data::Dumper模块,来打印数组,哈希变量的内容,在.perldb中加入如下配置:

$DB::alias{'dump'} = 's/^dump (.*)/p Dumper($1)/';sub afterinit { push @DB::typeahead, "use Data::Dumper qw(Dumper)";}

这样,就可以在perldb中,直接使用dump命令来打印:

DB<10> dump %Options$VAR1 = 'EnableCheckers';$VAR2 = [];$VAR3 = 'DisableCheckers';$VAR4 = [];

4、保存历史命令

在.perldb中加入如下配置:

&parse_options("HistFile=$ENV{HOME}/.perldb.hist");

下次进入perl debugger的时候,还可以向上翻出早前的历史命令。



分享给朋友:
您可能感兴趣的文章:
随机阅读: