首页 > 解决方案 > 如何转储 MoarVM 字节码

问题描述

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

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

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

标签: rakumoarvm

解决方案


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

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

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


推荐阅读