in reverie-ptrace/src/debug.rs [26:49]
fn show_stackframe(tid: Pid, stack: u64, top_size: usize, bot_size: usize) -> String {
let mut text = String::new();
if stack < top_size as u64 {
return text;
}
let sp_top = stack - top_size as u64;
let sp_bot = stack + bot_size as u64;
let mut sp = sp_top;
while sp <= sp_bot {
match ptrace::read(tid.into(), sp as ptrace::AddressType) {
Err(_) => break,
Ok(x) => {
if sp == stack {
text += &format!(" => {:12x}: {:16x}\n", sp, x);
} else {
text += &format!(" {:12x}: {:16x}\n", sp, x);
}
}
}
sp += 8;
}
text
}