如何将Perl调试器输出限制为我自己脚本中的行?

Ala*_*lan 3 perl

我在非交互模式下运行调试器,输出写入文件.我想在执行时打印出Perl脚本的每一行,但只打印脚本本身的行.我不想看到脚本调用的库代码(File :: Basename,Exporter :: import等).这似乎应该很容易做到,但perldebug的文档只讨论限制倾销结构的深度.我想要的是什么,如果是的话,怎么样?

请注意,我正在执行我的程序,如下所示:

PERLDB_OPTS="LineInfo=temp.txt NonStop=1 AutoTrace=1 frame=2" perl -dS myprog.pl arg0 arg1
Run Code Online (Sandbox Code Playgroud)

mob*_*mob 6

默认情况下,Devel::DumpTrace不会进入系统模块,您可以对调试器将进入的模块进行精细控制(这并不容易,但可能).就像是

DUMPTRACE_FH=temp.txt perl -d:DumpTrace=quiet myprog.pl 
Run Code Online (Sandbox Code Playgroud)

就像你显然想做的那样.

Devel::DumpTrace 在每一行上也做了很多处理 - 找出变量值并将它们包含在输出中 - 因此它可能过度杀伤并且运行速度比 perl -dS ...

(Crikey,这是现在两个插头Devel::DumpTrace这个星期!)