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:
@@ -3263,6 +3263,26 @@ fn dump_thread_diagnostic(
|
|||||||
mem: &xenia_memory::GuestMemory,
|
mem: &xenia_memory::GuestMemory,
|
||||||
quiet: bool,
|
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 {
|
if quiet {
|
||||||
return;
|
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)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
|
|||||||
Reference in New Issue
Block a user