如何转储 MoarVM 字节码
How to dump MoarVM bytecode
我想知道如何调试 Moarvm 字节码。是否有文件描述例如
如何将 raku 转换为 moarvm 以及如何转储生成的字节码。如果我尝试 运行:
rakudo-m --target=mbc c.p6
===SORRY!===
Cannot dump this object; no dump method
我在某处读到有关“--dump”开关的信息,但它似乎不可用。我从 github.
自定义编译 rakudo/nqp/moarvm
rakudo 编译器的 target
参数需要一些值的 --output=filename
。不过,parse
、ast
和 optimize
都会愉快地输出到控制台。
moar
二进制文件具有 --dump
标志,但我可能建议使用 moarvm 的 spesh 子系统的调试输出,它是动态字节码专家和 jit。
您可以通过将环境变量 MVM_SPESH_LOG
设置为文件名来获取它。如果有问题的代码 运行 不够经常出现在 spesh 日志 中,您可以设置 MVM_SPESH_NODELAY
这样 moar
将考虑例程“热”早得多。优化器可以使用的信息会更少,但如果你只是在看到编译结果之后,应该没问题。
我想知道如何调试 Moarvm 字节码。是否有文件描述例如 如何将 raku 转换为 moarvm 以及如何转储生成的字节码。如果我尝试 运行:
rakudo-m --target=mbc c.p6
===SORRY!===
Cannot dump this object; no dump method
我在某处读到有关“--dump”开关的信息,但它似乎不可用。我从 github.
自定义编译 rakudo/nqp/moarvmrakudo 编译器的 target
参数需要一些值的 --output=filename
。不过,parse
、ast
和 optimize
都会愉快地输出到控制台。
moar
二进制文件具有 --dump
标志,但我可能建议使用 moarvm 的 spesh 子系统的调试输出,它是动态字节码专家和 jit。
您可以通过将环境变量 MVM_SPESH_LOG
设置为文件名来获取它。如果有问题的代码 运行 不够经常出现在 spesh 日志 中,您可以设置 MVM_SPESH_NODELAY
这样 moar
将考虑例程“热”早得多。优化器可以使用的信息会更少,但如果你只是在看到编译结果之后,应该没问题。