我在非交互模式下运行调试器,输出写入文件.我想在执行时打印出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)
默认情况下,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这个星期!)