From 4cdb377855b0e91ad83075236b26e1a2230b54d2 Mon Sep 17 00:00:00 2001 From: Lotte Steenbrink Date: Fri, 22 Jan 2021 12:40:17 +0100 Subject: [PATCH] provoke stack overflow more blatantly --- advanced/firmware/src/bin/stack_overflow.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/advanced/firmware/src/bin/stack_overflow.rs b/advanced/firmware/src/bin/stack_overflow.rs index e5930e8..b98ea13 100644 --- a/advanced/firmware/src/bin/stack_overflow.rs +++ b/advanced/firmware/src/bin/stack_overflow.rs @@ -10,7 +10,8 @@ fn main() -> ! { // board initialization dk::init().unwrap(); - log::info!("fib(100) = {:?}", fib(100)); + log::info!("provoking stack overflow..."); + spam(); loop { asm::bkpt(); @@ -18,13 +19,12 @@ fn main() -> ! { } #[inline(never)] -fn fib(n: u32) -> u32 { - // allocate and initialize one kilobyte of stack memory to provoke stack overflow - let _use_stack = [0xAA; 1024]; +fn spam() { + // allocate and initialize one kilobyte of stack memory to provoke stack overflow quicker + let use_stack = [0xAA; 1024]; + let addr = &use_stack as *const i32; - if n < 2 { - 1 - } else { - fib(n - 1) + fib(n - 2) // recursion - } + log::info!("address of current `use_stack`: {:?}", addr); + + spam(); // infinite recursion }