使用NonStop调试器选项时如何将perl脚本的调试跟踪重定向到文件?

Pau*_*kov 3 debugging perl

我正在使用标准Perl调试器来跟踪调用:

$ cat test.pl 
sub test { print "Hello world" }
test();
$ PERLDB_OPTS="NonStop frame=1" perl -d test.pl > /dev/null
Package test.pl.
  entering DB::Obj::_init
  entering main::test
Run Code Online (Sandbox Code Playgroud)

如何将输出重定向到文件?

如果我做

PERLDB_OPTS="NonStop frame=1" perl -d test.pl > /dev/null 2>trace.txt
Run Code Online (Sandbox Code Playgroud)

trace.txt 是空的.

它看起来不像在标准流上打印的调试输出(STDERR或STDOUT).

Pra*_*eep 7

使用Perl选项LineInfo = db.out输出到文件.

例:

PERLDB_OPTS="NonStop frame=1 LineInfo=db.out" perl -d ./test.pl
Run Code Online (Sandbox Code Playgroud)

样本输出:

entering CODE(0x14c53f0)
entering CODE(0x14ce788)
 entering CODE(0x164f2a0)
  entering strict::import
 entering CODE(0x164f270)
  entering warnings::import
 entering CODE(0x16168b8)
  entering CODE(0x16160f0)
   entering CODE(0x15fc378)
   entering CODE(0x1601a10)
    Package /usr/share/perl5/warnings/register.pm.
Run Code Online (Sandbox Code Playgroud)

更多信息,访问https://perldoc.perl.org/perldebug.html#Configurable-Options