Hi Branden,
Yes, kernel console output and syz-fuzzer (not executor) outputs are
merged together. You can see examples of intermixed output in any
"log" files, they contain both kernel oops (from console) and programs
executed before the crash (syz-fuzzer output). “ssh” and “qemu” tags
are not used to separate outputs later, I think they are used only to
produce meaningful log messages.
ContainsCrash is called first and it's called continuously on the
merged output to understand if the output contains any crash yet or
not.
If ContainsCrash returns true, Parse is called to get the crash title
and full oops message.
Symbolize simply adds file:line info to oops messages, so it's called
after Parse.
Diagnose is VM-type-specific function that may produce some additional
diagnostics output that may help to debug the crash (e.g. for qemu it
outputs CPU registers, for gVisor it sends some commands to runsc to
produce additional stacks). Diagnose is called after Parse as well,
however, I think we may call Parse after Diagnose again because
Diagnose may cause the kernel to produce more output on console.
The test cases are exported from VM by printing them on stdout by
syz-fuzzer process. So they appear in the merged "log" files.
Hope this clears some things.