diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 3026911d3f..5591343c3a 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -830,10 +830,15 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace, ret_addr const exit_data = ExitData.create_exit_data(msg, &exit_size) catch null; if (exit_data) |data| { - if (uefi.system_table.std_err) |out| { - _ = out.setAttribute(uefi.protocol.SimpleTextOutput.red); - _ = out.outputString(data); - _ = out.setAttribute(uefi.protocol.SimpleTextOutput.white); + // Output to both std_err and con_out, as std_err is easier + // to read in stuff like QEMU at times, but, unlike con_out, + // isn't visible on actual hardware if directly booted into + inline for ([_]?*uefi.protocol.SimpleTextOutput{ uefi.system_table.std_err, uefi.system_table.con_out }) |o| { + if (o) |out| { + _ = out.setAttribute(uefi.protocol.SimpleTextOutput.red); + _ = out.outputString(data); + _ = out.setAttribute(uefi.protocol.SimpleTextOutput.white); + } } }