我在非交互模式下运行调试器,输出写入文件.我想在执行时打印出Perl脚本的每一行,但只打印脚本本身的行.我不想看到脚本调用的库代码(File :: Basename,Exporter :: import等).这似乎应该是容易做的事情,但
perldebug的文档仅讨论限制倾销结构的深度.我想要的是什么,如果是的话,怎么样?
请注意,我正在执行我的程序,如下所示:
PERLDB_OPTS="LineInfo=temp.txt NonStop=1 AutoTrace=1 frame=2" perl -dS myprog.pl arg0 arg1
解决方法
默认情况下,
Devel::DumpTrace
不会进入系统模块,您可以对调试器将进入的模块进行精细控制(这不容易,但可能).就像是
DUMPTRACE_FH=temp.txt perl -d:DumpTrace=quiet myprog.pl
就像你显然想做的那样.
Devel :: DumpTrace还在每一行上做了很多处理 – 计算出变量值并将它们包含在输出中 – 所以它可能过度杀戮并且运行速度比perl -dS慢得多……
(Crikey,这周Devel :: DumpTrace现在是two plugs!)