8

我想知道如何调试 Moarvm 字节码。是否有文档描述例如如何将 raku 转换为 moarvm 以及如何转储生成的字节码。如果我尝试运行:

rakudo-m --target=mbc c.p6 
===SORRY!===
Cannot dump this object; no dump method

我在某处读到了“--dump”开关,但这似乎不可用。我从 github 自定义编译 rakudo/nqp/moarvm。

4

1 回答 1

2

rakudo 编译器的target参数需要--output=filename一些值。parse, ast, 并且optimize都会很高兴地输出到控制台。

moar二进制是有标志的--dump,但我可能会建议使用 moarvm 的spesh子系统的调试输出,它是动态字节码专用器和 jit。

您可以通过将环境变量设置MVM_SPESH_LOG为文件名来获得它。如果有问题的代码没有足够频繁地运行以出现在spesh 日志中,您可以设置MVM_SPESH_NODELAY以便moar更早地考虑例程“热”。优化器可以使用的信息会更少,但如果您只看到编译结果,那应该没问题。

于 2020-07-27T21:17:00.400 回答