Allow procmgr to recognize unhandled exceptions.

This commit is contained in:
4lDO2
2025-04-15 15:18:42 +02:00
parent 020b8ad415
commit 2e6122bc7e
9 changed files with 134 additions and 54 deletions
+1 -1
View File
@@ -208,7 +208,7 @@ impl SyscallDebugInfo {
}
#[cfg(feature = "syscall_debug")]
pub fn debug_start([a, b, c, d, e, f]: [usize; 6]) {
let do_debug = if crate::context::current().read().name.contains("bash") {
let do_debug = if false && crate::context::current().read().name.contains("bash") {
if a == SYS_CLOCK_GETTIME || a == SYS_YIELD || a == SYS_FUTEX {
false
} else if (a == SYS_WRITE || a == SYS_FSYNC) && (b == 1 || b == 2) {
+1 -1
View File
@@ -216,7 +216,7 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> us
percpu.inside_syscall.set(false);
if percpu.switch_internals.being_sigkilled.get() {
exit_this_context();
exit_this_context(None);
}
// errormux turns Result<usize> into -errno
+2 -2
View File
@@ -23,7 +23,7 @@ use crate::{
use super::usercopy::UserSliceWo;
pub fn exit_this_context() -> ! {
pub fn exit_this_context(excp: Option<syscall::Exception>) -> ! {
let close_files;
let addrspace_opt;
@@ -49,7 +49,7 @@ pub fn exit_this_context() -> ! {
// TODO: Should status == Status::HardBlocked be handled differently?
let owner = {
let mut guard = context_lock.write();
guard.status = context::Status::Dead;
guard.status = context::Status::Dead { excp };
guard.owner_proc_id
};
if let Some(owner) = owner {