当 Perl 作为 CGI 与 Apache 一起运行时,如何进行远程调试?
似乎大多数人都使用传统的print
方式进行调试,有没有人在linux中使用远程调试perl?
Seems most are using the traditional way of print
for debugging purpose, is there anyone that uses remote debug for perl in linux?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里有相当简单的指示: http://search.cpan.org/ dist/Enbugger/lib/Enbugger.pod#From_gdb
虽然这假定您有一个长期运行的 perl 进程(mod_perl、fastcgi 等),但并不希望在该进程下运行调试器。如果您仅使用普通 CGI,则可以将 Web 服务器配置为运行 perl -d 并通过其 TTY 或 RemotePort 选项将调试器设置为远程调试。或者继续按照上面的说明在实际的 Perl 代码中使用 Enbugger(再次设置 TTY 或 RemotePort)。
There are reasonably straightforward directions here: http://search.cpan.org/dist/Enbugger/lib/Enbugger.pod#From_gdb
Though that presupposes you have a long-running perl process (mod_perl, fastcgi, etc) that wasn't expecting to be run under the debugger. If you are just using vanilla CGI, you can configure your webserver to run perl -d and set the debugger to remote debugging via its TTY or RemotePort options. Or go ahead and use Enbugger in your actual perl code as in the directions above (again, setting TTY or RemotePort).
什么样的调试?实际的 Perl 调试器或使用 warn() 和 tail -f /var/log/apache/error.log?
最后我建议使用 Log::Log4perl 。除非您需要一个实际的逐步调试器。
您需要一个实际的调试器,您可能不想混合使用 Apache。您可以从命令行运行 cgi 并传递参数 CGI.pm。
What sort of debugging? An actual perl debugger or using warn() with tail -f /var/log/apache/error.log?
In the end i would suggest swicting to Log::Log4perl. Unless you need an actual step by step debugger.
You you need an actual debugger, you likely won't want to use Apache in the mix. You can run your cgi from the command line and pass arguments CGI.pm.