Kernel: New panic
Same reproducer script as in #26489
I just got a very different backtrace with `dash` on riscv64.
```
[dash(323:323)]: ASSERTION FAILED: current_thread->previous_mode() == ExecutionMode::User
[dash(323:323)]: ./Kernel/Syscalls/SyscallHandler.cpp:176 in void Kernel::syscall_handler(TrapFrame*)
[dash(323:323)]: KERNEL PANIC! :^(
[dash(323:323)]: Aborted
[dash(323:323)]: at ./Kernel/Library/Assertions.cpp:38 in void abort()
Kernel + 0x0000000000319292 Kernel::__panic(char const*, unsigned int, char const*) +0x138
Kernel + 0x0000000000314e0a AK::Function<void ()>::callable_wrapper() const [clone .part.0] +0x0
Kernel + 0x0000000000314cf2 __assertion_failed(char const*, char const*, unsigned int, char const*) +0x12e
Kernel + 0x00000000003ebafc syscall_handler +0xad6
Kernel + 0x000000000047f86c trap_handler +0x22e
Kernel + 0x000000000049166e restore_context_and_sret +0x0
```
Testing on riscv64...
dash: fast crash 2/2 times
oksh: crash 1/4 times
bash: too slow
```
[oksh(3055:3055)]: ASSERTION FAILED: current_thread->previous_mode() == ExecutionMode::User
[oksh(3055:3055)]: ./Kernel/Syscalls/SyscallHandler.cpp:176 in void Kernel::syscall_handler(TrapFrame*)
[oksh(3055:3055)]: KERNEL PANIC! :^(
[oksh(3055:3055)]: Aborted
[oksh(3055:3055)]: at ./Kernel/Library/Assertions.cpp:38 in void abort()
Kernel + 0x0000000000319292 Kernel::__panic(char const*, unsigned int, char const*) +0x138
Kernel + 0x0000000000314e0a AK::Function<void ()>::callable_wrapper() const [clone .part.0] +0x0
Kernel + 0x0000000000314cf2 __assertion_failed(char const*, char const*, unsigned int, char const*) +0x12e
Kernel + 0x00000000003ebafc syscall_handler +0xad6
Kernel + 0x000000000047f86c trap_handler +0x22e
Kernel + 0x000000000049166e restore_context_and_sret +0x0
```
1 条评论