Allow procmgr to recognize unhandled exceptions.
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user