in reverie-ptrace/src/gdbstub/commands/base/_qXfer.rs [21:50]
fn parse(mut bytes: BytesMut) -> Option<Self> {
if bytes.starts_with(b":features:read:") {
let mut iter =
bytes[b":features:read:".len()..].split_mut(|c| *c == b':' || *c == b',');
let annex = iter.next()?;
if annex != b"target.xml" {
return None;
}
let offset = iter.next()?;
let len = iter.next()?;
Some(qXfer::FeaturesRead {
offset: decode_hex(offset).ok()?,
len: decode_hex(len).ok()?,
})
} else if bytes.starts_with(b":auxv:read:") {
let mut iter = bytes[b":auxv:read:".len()..].split_mut(|c| *c == b':' || *c == b',');
let annex = iter.next()?;
if annex != b"" {
return None;
}
let offset = iter.next()?;
let len = iter.next()?;
Some(qXfer::AuxvRead {
offset: decode_hex(offset).ok()?,
len: decode_hex(len).ok()?,
})
} else {
None
}
}