是否有一个很好的工具来调试基于Perl的Web应用程序?输出到stderr或stdout不算作工具。
答案 0 :(得分:11)
CGI::Inspect允许您检查和调试正在运行的Perl Web应用程序。
详细了解the module上的developer's website。
或者查看YAPC :: NA 2009的slides from a presentation about it。
答案 1 :(得分:2)
Komodo IDE仅支持remote debugging。
答案 2 :(得分:2)
Eclipse的EPIC plugin也允许你这样做。
答案 3 :(得分:2)
在CGI中,您可以
use CGI::Carp qw(fatalsToBrowser);
它会在您的浏览器中显示任何致命消息。
使用Mason,保留默认错误选项,该选项在浏览器中输出调用堆栈。
答案 4 :(得分:1)
关于这一方的晚会,但我觉得应该召集一些其他工具以防万一其他人偶然发现这个问题。
Perl命令行调试器完全可以使用,但偶尔难以使用,并且具有相当陡峭的学习曲线,特别是对于那些习惯使用GUI工具的人。
Devel::hdb是一个很棒的工具。它集成了Perl中现有的调试功能,因此您可以使用-d:hdb作为标志启动应用程序,然后您可以访问基于Web的端点以轻松地开始逐步执行应用程序。它支持断点,监视表达式和步进,因此它可以帮助您找出问题在某个实际应用程序中的位置。
如前所述,ActiveState的Komodo IDE(不是Edit)有一个内置的图形化调试器,可以在本地实例上运行,也可以在远程服务器上运行。远程服务器必须安装一些库,并在代码中激活才能工作。它不是侵入性的,但它应该是众所周知的。此外,Komodo花钱,但他们提供试用期。它适用于Windows,OS X或Linux。 ActiveState的Perl Dev Kit也有一个独立的调试器,但我多年没有使用它了。
答案 5 :(得分:0)
我们不要假设like the first answer所使用的模块是CGI,而是提供适用于/支持PSGI/Plack所支持的任何内容的内容。
也许组合Plack::Middleware::Debug(显示有关活动请求和响应的信息,可能添加Log4perl面板)和Devel::hdb以在单独的选项卡中调试正在运行的代码。
同样可用(我还没试过)是InteractiveDebugger
您尝试的任何内容都应该在单个进程中运行,非分叉服务器(如HTTP::Server::PSGI或HTTP::Server::Simple::PSGI)用于开发和调试,而不是像Starman那样。