我的Perl程序看起来像这样:
foo/
foo/bar/
for/bar/test.pm
foo.pm
foo/bar.pm
test.pl
并使用perl test.pl
启动程序。我想在foo/bar/test.pm中调试一个sub。如何在潜艇上设置断点?
我该怎么做呢?
谢谢。
发布于 2012-01-19 11:01:20
要调试perl脚本,请使用-d
开关调用调试器。
perl -d test.pl
在调试器中,可以使用b <line no>
在当前文件中设置断点。有时,在尚未加载或很久以前加载的文件中设置断点很麻烦,因此您还可以将行
$DB::single = 1;
在任何perl程序中的任何位置,调试器将在执行该行之后立即中断。这也是一个好方法(唯一的方法?)在将在编译时运行的代码中设置断点。
发布于 2012-01-19 12:59:50
只需使用sub的完全限定名称作为b
的参数
b foo::bar::test::subname
示例:
$ perl -d -e'use CGI; CGI->new'
...
main::(-e:1): use CGI; CGI->new
DB<1> b CGI::new
DB<2> r
CGI::new(.../CGI.pm:337):
337: my($class,@initializer) = @_;
DB<2> q
https://stackoverflow.com/questions/8920477
复制相似问题