8

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

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

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

4

3 回答 3

8

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

perl -d $(which morbo) myMojoApp.pl

$DB::single = 1在您希望初始断点运行并c作为第一个调试器命令运行的应用程序周围散布一堆语句可能是最简单的。当您运行遇到断点的请求时,您将在启动的终端中获得调试器提示morbo

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

于 2015-08-14T15:46:05.547 回答
2

正如 JHThorsen指出的那样,标准的 Mojolicious 测试实际上是普通的 Perl 脚本,因此您可以使用以下命令调试您的测试:

perl -d t/mytest.t

将目录-Ilib添加lib/到 @INC 包含列表中,以便加载您的模块。

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

$DB::single = 1;
于 2016-07-15T13:56:06.467 回答
1

感谢'pink_mist'。你可以做:

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

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

于 2016-06-23T12:01:04.990 回答