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

如何使用hypnotoad或morbo调用交互式Perl调试?,perl,mojolicious,hypnotoad,Perl,Mojolicious,Hypnotoad,我不熟悉mojolicious,但已经使用Perl一段时间了。我必须跳过一些障碍,但是我可以让交互式Perl调试器(和Komodo)与Apache的远程连接一起工作,但是我找不到任何关于使用hypnotoad或morbo进行交互式调试的信息 基本教程中的命令行示例可以很好地工作,因为您可以使用perl-d启动它们,但是我看不出有什么方法可以告诉hypnotoadctl脚本将服务置于交互式调试模式 这不可能吗?提示?提示?指针?morbo和hypnotoad是perl程序,因此可以使用-d开关启动

我不熟悉mojolicious,但已经使用Perl一段时间了。我必须跳过一些障碍,但是我可以让交互式Perl调试器(和Komodo)与Apache的远程连接一起工作,但是我找不到任何关于使用hypnotoad或morbo进行交互式调试的信息

基本教程中的命令行示例可以很好地工作,因为您可以使用perl-d启动它们,但是我看不出有什么方法可以告诉hypnotoadctl脚本将服务置于交互式调试模式


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

morbo
hypnotoad
是perl程序,因此可以使用
-d
开关启动它们

perl -d $(which morbo) myMojoApp.pl
在你的应用程序周围散布一堆
$DB::single=1
语句可能是最简单的方法,你希望你的初始断点去哪里,然后作为第一个调试器命令运行
c
。当您运行一个命中断点的请求时,您将在启动
morbo
的终端中得到一个调试器提示


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

多亏了“粉红雾”。你可以做:

perl -d myMojoApp.pl daemon -l http://*:29849
但应用程序配置未应用。我不知道为什么。

正如Jhtorsen所说,标准的mojolicous测试实际上是普通的Perl脚本,因此您可以使用以下工具调试测试:

perl -d t/mytest.t
-Ilib
lib/
目录添加到@INC包含列表中,以便加载模块

一个问题是,许多模块直到执行时才加载,因此,如果调试器对尚未加载的符号感到困扰,您可能希望在使用仔细插入的代码强制调试提示后设置断点

$DB::single = 1;

hypnotoad
是供生产使用的,所以希望您在需要之前已经修复了所有的bug。:)
hypnotoad
exec线程并刚刚退出,因此调试器接口丢失;使用
morbo
时出现错误:
分叉,但不知道如何创建新的TTY#########
carton
这给了我们:
carton exec perl-d$(carton exec which morbo)。/site.pl