improved debuger
This commit is contained in:
@@ -589,6 +589,15 @@ impl Computer {
|
|||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
if SHARED
|
||||||
|
.external_enabled_interupts
|
||||||
|
.load(std::sync::atomic::Ordering::Relaxed)
|
||||||
|
== 0
|
||||||
|
{
|
||||||
|
println!("Program terminated");
|
||||||
|
self.error = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
println!("awaiting interupt...");
|
println!("awaiting interupt...");
|
||||||
}
|
}
|
||||||
atomic_wait::wait(&SHARED.external_interupts, 0);
|
atomic_wait::wait(&SHARED.external_interupts, 0);
|
||||||
|
|||||||
@@ -412,6 +412,25 @@ fn main() -> Result<(), Error> {
|
|||||||
}
|
}
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
"t" | "to" => {
|
||||||
|
if next.len() >= 2 {
|
||||||
|
match parse_int::parse::<u32>(next[1]) {
|
||||||
|
Ok(v) => {
|
||||||
|
while !simulation.error && simulation.pc != (v as usize/4) {
|
||||||
|
simulation.step();
|
||||||
|
}
|
||||||
|
false
|
||||||
|
},
|
||||||
|
Err(e) => {
|
||||||
|
println!("{e}");
|
||||||
|
true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
println!("{HELP_MSG}");
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
println!("{HELP_MSG}");
|
println!("{HELP_MSG}");
|
||||||
true
|
true
|
||||||
|
|||||||
Reference in New Issue
Block a user