Currently if an exception SIGILL, SIGBUS, SIGSEGV occurs the sandbox stops execution. This does not match the behavior on other architectures.
Instead print the current program counter and if any the involved UEFI binaries. Then reset the system. When testing UEFI binaries like the Self Certification Test exceptions may occur. Without information about the UEFI binary where the exception was caused it is difficult to analyze the cause. The exception command is implemented for the sandbox. This command allows to trigger SIGILL or SIGSEGV. The UEFI exception unit test is implemented for the sandbox. Heinrich Schuchardt (3): sandbox: add handler for exceptions cmd: sandbox: implement exception command efi_selftest: implement exception test for sandbox arch/sandbox/cpu/os.c | 31 ++++++++++++++ arch/sandbox/cpu/start.c | 4 ++ arch/sandbox/lib/interrupts.c | 30 ++++++++++++++ cmd/Kconfig | 2 +- cmd/Makefile | 1 + cmd/sandbox/Makefile | 3 ++ cmd/sandbox/exception.c | 41 +++++++++++++++++++ include/os.h | 17 ++++++++ .../efi_selftest_miniapp_exception.c | 2 + 9 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 cmd/sandbox/Makefile create mode 100644 cmd/sandbox/exception.c -- 2.28.0