From bda362a666e55f4f255321428934bd0811399272 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Thu, 25 Apr 2019 16:56:49 +0200 Subject: [PATCH] Panic in Double Fault handler instead of looping endlessly The advantage of panicking is that it causes a QEMU exit in integration tests. --- .../posts/07-double-faults/index.md | 3 +-- .../qemu-catch-double-fault.png | Bin 10977 -> 11504 bytes .../qemu-double-fault-on-stack-overflow.png | Bin 10855 -> 11406 bytes 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/blog/content/second-edition/posts/07-double-faults/index.md b/blog/content/second-edition/posts/07-double-faults/index.md index 589fb0a6..87c807da 100644 --- a/blog/content/second-edition/posts/07-double-faults/index.md +++ b/blog/content/second-edition/posts/07-double-faults/index.md @@ -78,8 +78,7 @@ lazy_static! { extern "x86-interrupt" fn double_fault_handler( stack_frame: &mut InterruptStackFrame, _error_code: u64) { - println!("EXCEPTION: DOUBLE FAULT\n{:#?}", stack_frame); - loop {} + panic!("EXCEPTION: DOUBLE FAULT\n{:#?}", stack_frame); } ``` diff --git a/blog/content/second-edition/posts/07-double-faults/qemu-catch-double-fault.png b/blog/content/second-edition/posts/07-double-faults/qemu-catch-double-fault.png index 7ed508d4d5d36125518bfa1fddede317f3523bea..9c3a6f0aecac711864684bcbd6caa90c7b0743b9 100644 GIT binary patch delta 10134 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 diff --git a/blog/content/second-edition/posts/07-double-faults/qemu-double-fault-on-stack-overflow.png b/blog/content/second-edition/posts/07-double-faults/qemu-double-fault-on-stack-overflow.png index 07084a8595c2a1120e74b05dfc52001b689d49f1..e4debaeb1ae11de0b38a68c3881581681e2efa70 100644 GIT binary patch delta 10036 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 DWoEG>