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

如何将Perl调试器输出限制为自己脚本中的行?,perl,Perl,我正在非交互模式下运行调试器,并将输出写入文件。我想在Perl脚本执行时打印出每一行,但只打印脚本本身的行。我不想看到脚本调用的库代码(File::Basename、Exporter::import等)。这似乎是一件容易做到的事情,但本文档仅讨论了限制倾倒结构的深度。我想要的是可能的吗?如果是,如何实现 请注意,我正在按如下方式执行我的程序: PERLDB_OPTS="LineInfo=temp.txt NonStop=1 AutoTrace=1 frame=2" perl -dS myprog

我正在非交互模式下运行调试器,并将输出写入文件。我想在Perl脚本执行时打印出每一行,但只打印脚本本身的行。我不想看到脚本调用的库代码(File::Basename、Exporter::import等)。这似乎是一件容易做到的事情,但本文档仅讨论了限制倾倒结构的深度。我想要的是可能的吗?如果是,如何实现

请注意,我正在按如下方式执行我的程序:

PERLDB_OPTS="LineInfo=temp.txt NonStop=1 AutoTrace=1 frame=2" perl -dS myprog.pl arg0 arg1

你是说不想单步执行自己程序之外的函数吗?为此,您希望使用
n
而不是
s

perldebug

   s [expr]    Single step.  Executes until the beginning of another
               statement, descending into subroutine calls.  If an
               expression is supplied that includes function calls, it too
               will be single‐stepped.

   n [expr]    Next.  Executes over subroutine calls, until the beginning
               of the next statement.  If an expression is supplied that
               includes function calls, those functions will be executed
               with stops before each statement.
默认情况下,不进入系统模块,您可以对调试器将进入的模块进行精细控制(这不容易,但可能)。差不多

DUMPTRACE_FH=temp.txt perl -d:DumpTrace=quiet myprog.pl 
和你想做的事情很相似

Devel::DumpTrace
还在每一行上做更多的处理——计算变量值并将它们包含在输出中——因此它可能会有点过头,运行速度比
perl-dS…慢得多。


(天哪,这周的主题是
Devel::DumpTrace

我正在以非交互方式运行,将所有输出写入一个文件。因此,我不使用s或n。我编辑了我的问题来强调这一点。啊哈,对不起,我错过了。我从未使用过那种非交互模式。我必须考虑在我的系统上安装这个模块。看起来不错。