D032 - The output channel is chosen by what moves a byte
Status: decided Date: 2026-09-26
obs_write tries sceKernelWrite,
puts, write and putchar in that
order and keeps the first that accepts a byte. The channel used is
appended to the end record. puts is used only
for whole records that already end in a newline. An eboot does not call
raw import channels; it writes through pointers resolved by name before
the first record. The system log and the file sink are written
separately and unconditionally, because on a title no descriptor may be
listening and the sandboxed report file is torn down when the title
exits.
Why: a probe that reports through one function turns
that function into a check whose failure takes the whole report with it.
Loaders differ: one discards write, one refuses descriptor
1, one implements only puts. Which channel worked is itself
a finding.
Rejected: a single channel - silent on the loaders that lack it. An emulator-specific reporting hook - measures that emulator's opinion of itself.