我刚开始维护一个使用perl作为CGI脚本语言的旧系统。
我知道我可以使用perl -d programName.pl
来调试perl脚本,但是如何调试
一个正在运行的perl进程?
答案 0 :(得分:1)
您可以在任何进程中使用strace
命令监视系统调用,例如对于perl进程也是如此。
您也可以使用Enbugger。来自doc:
允许在运行时使用调试器,无论您是否使用 进程是从调试开始的。如果您愿意,这很有用 添加钩子,以便在某种事件或UNIX上加载调试器 信号,或者由于某种原因,您在运行时遇到困难 在编译时打开调试程序。
但老实说,我自己从未使用它,所以不能告诉你更多关于它的事情。
您确定需要调试正在运行的脚本吗?
特别是在CGI脚本中(很多时候都不是持久的)并且从每个请求开始,更容易添加一些debug prints
作为@Josh如上所述。
或者您可以使用许多开发人员模块,例如Devel :: Trace等(请查看metacpan.org)。
答案 1 :(得分:0)
在这样的情况下,在我的perl脚本中我做
print STDERR "DB8 my comment";
然后我做
cat /var/www/log/error.log | grep DB8
当然,DB8可以是任何唯一的字符串。