如何使用hypnotoad或morbo调用交互式Perl调试?

时间:2015-08-14 15:16:43

标签: perl mojolicious hypnotoad

我是mojolicious的新手,但已经使用Perl一段时间了。我必须跳过一些箍,但我可以让交互式Perl调试器(和Komodo)使用Apache的远程连接,但我找不到有关hypnotoad或morbo的交互式调试的任何信息。

http://mojolicio.us/perldoc/Mojolicious/Guides/Tutorial#Hello-World基础教程中的命令行示例工作正常,因为您可以使用perl -d启动它们,但我还是看不到告诉hypnotoadctl脚本将服务置于交互式调试中模式ala apache。

这不可能吗?提示?提示?指针?

3 个答案:

答案 0 :(得分:7)

morbohypnotoad是perl程序,因此您可以使用-d开关启动它们。

perl -d $(which morbo) myMojoApp.pl

在你的应用程序周围撒上一堆$DB::single = 1语句可能最容易,你希望你的初始断点去运行c作为第一个调试器命令。当您运行遇到断点的请求时,您将在启动morbo的终端中收到调试器提示。

hypnotoad与调试器一起使用将更加棘手,因为它会快速关闭所有标准文件句柄,多次调用fork,并成为一个守护进程。

答案 1 :(得分:2)

作为JHThorsen points out,标准的Mojolicious测试实际上是普通的Perl脚本,因此您可以使用以下命令调试测试:

perl -d t/mytest.t

-Iliblib/目录添加到@INC包含列表中,以便加载模块。

一个问题是许多模块在执行时才加载,所以如果调试器对你尚未加载的符号感到困扰,你可能想在强制调试提示后设置断点。小心插入

$DB::single = 1;

答案 2 :(得分:1)

感谢'pink_mist'。你可以这样做:

perl -d myMojoApp.pl daemon -l http://*:29849

但是应用程序配置不适用。我不知道为什么。