15.3.1 What is a Stack Overflow?
A stack overflow can occur if the stack pointer exceeds the RAM address range reserved for the call stack. When the application uses more space than is reserved for the stack, it can overwrite and corrupt other data such as statically allocated variables and the heap. In addition, when those other variables are accessed, they can corrupt values on the stack. This data corruption can be challenging to debug and leads to unpredictable runtime behavior of the application.