binaryen
binaryen copied to clipboard
Fuzzer: Log locals and values referred to from locals
Logging values is important in the fuzzer as the loggings are observable effects that we can then compare to other VMs and after optimizations. Previously we logged random things, which had some chance to pick useful data, but it makes sense to focus on sensitive values such as locals. By logging locals, we get a higher chance to notice when a bad change to a local happens.
If the local is a reference then we can't log its value, but we can log if it is null at least. We can also try to find a field that is loggable, if it is a reference to a struct.