mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 09:45:19 +08:00
fix: backtrace: latest Rust will make ra = 0xffffffff when getting the first frame
This commit is contained in:
parent
27deb3302a
commit
7757a174ce
@ -18,7 +18,11 @@ impl FrameWalker {
|
||||
fn is_valid(&self) -> bool {
|
||||
let fp_valid = unsafe { BSS_START.as_virt_addr() <= self.current_fp && self.current_fp < BSS_END.as_virt_addr() };
|
||||
let pc_valid = unsafe { TEXT_START.as_virt_addr() <= self.current_pc && self.current_pc < TEXT_END.as_virt_addr() };
|
||||
fp_valid && pc_valid
|
||||
|
||||
// pc might be 0xffff_ffff in the first frame
|
||||
let first = self.current_pc == VirtAddr(usize::MAX);
|
||||
|
||||
fp_valid && (pc_valid || first)
|
||||
}
|
||||
|
||||
pub fn new() -> Self {
|
||||
|
Loading…
Reference in New Issue
Block a user