Commit c16aeda8a6

Yusuf Bham <ybham6@gmail.com>
2024-02-16 20:04:42
std.builtin.panic(uefi): also output to con_out
1 parent 1fc42ed
Changed files (1)
lib
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);
+                    }
                 }
             }