From 412ba858b42628e83a07817ba9b022543031af86 Mon Sep 17 00:00:00 2001 From: MechaCat02 Date: Thu, 7 May 2026 21:42:33 +0200 Subject: [PATCH] move dump-section flush above quiet gate so it fires under --quiet runs The headless cmd_exec path passes quiet=false in normal use but the diagnostic --dump-section is independent of the chatty thread/dump prints, so it should not be gated by --quiet. Lockstep digest preserved. --- crates/xenia-app/src/main.rs | 41 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/crates/xenia-app/src/main.rs b/crates/xenia-app/src/main.rs index 4047eaf..49e928a 100644 --- a/crates/xenia-app/src/main.rs +++ b/crates/xenia-app/src/main.rs @@ -3263,6 +3263,26 @@ fn dump_thread_diagnostic( mem: &xenia_memory::GuestMemory, quiet: bool, ) { + if let Some((base, len, ref path)) = kernel.dump_section { + let mut buf = vec![0u8; len as usize]; + const CHUNK: usize = 4096; + let mut off = 0usize; + while off < buf.len() { + let take = CHUNK.min(buf.len() - off); + mem.read_bulk(base.wrapping_add(off as u32), &mut buf[off..off + take]); + off += take; + } + match std::fs::write(path, &buf) { + Ok(()) => eprintln!( + "dump-section: wrote {} bytes from {:#010x} to {}", + buf.len(), base, path.display(), + ), + Err(e) => eprintln!( + "dump-section: failed to write {}: {e}", + path.display(), + ), + } + } if quiet { return; } @@ -3751,27 +3771,6 @@ fn dump_thread_diagnostic( } } } - - if let Some((base, len, ref path)) = kernel.dump_section { - let mut buf = vec![0u8; len as usize]; - const CHUNK: usize = 4096; - let mut off = 0usize; - while off < buf.len() { - let take = CHUNK.min(buf.len() - off); - mem.read_bulk(base.wrapping_add(off as u32), &mut buf[off..off + take]); - off += take; - } - match std::fs::write(path, &buf) { - Ok(()) => println!( - "\n=== dump-section: wrote {} bytes from {:#010x} to {} ===", - buf.len(), base, path.display(), - ), - Err(e) => eprintln!( - "dump-section: failed to write {}: {e}", - path.display(), - ), - } - } } #[allow(clippy::too_many_arguments)]