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.
This commit is contained in:
MechaCat02
2026-05-07 21:42:33 +02:00
parent 08d41cf2fc
commit 412ba858b4

View File

@@ -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)]