From a3e63c44dd34bd0a8ed6b5e683ee4b7998a5b3a8 Mon Sep 17 00:00:00 2001 From: guoshengyuan1 Date: Mon, 22 Sep 2025 19:55:37 +0800 Subject: [PATCH] Document: add information for stack overflow check on context switching Updated documentation to explain how to enable detection during context switching. Co-authored-by: Chengdong Wang Signed-off-by: guoshengyuan1 --- Documentation/debugging/stackcheck.rst | 27 ++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/Documentation/debugging/stackcheck.rst b/Documentation/debugging/stackcheck.rst index c42ef7472a9..39e848782a7 100644 --- a/Documentation/debugging/stackcheck.rst +++ b/Documentation/debugging/stackcheck.rst @@ -6,14 +6,19 @@ Overview -------- Currently NuttX supports three types of stack overflow detection: - 1. Stack Overflow Software Check - 2. Stack Overflow Hardware Check - 3. Stack Canary Check + 1. Stack Overflow Software Check During Function Call + 2. Stack Overflow Software Check During Context Switching + 3. Stack Overflow Hardware Check + 4. Stack Canary Check -The software stack detection includes two implementation ideas: +The software stack detection during function call includes two implementation ideas: 1. Implemented by coloring the stack memory 2. Implemented by comparing the sp and sl registers +The software stack detection during context switching includes two implementation ideas: + 1. Implemented by coloring the stack memory + 2. Implemented by checking the bottom memory of the stack and the sp register + Support ------- @@ -21,8 +26,8 @@ Software and hardware stack overflow detection implementation, currently only implemented on ARM Cortex-M (32-bit) series chips Stack Canary Check is available on all platforms -Stack Overflow Software Check ------------------------------ +Stack Overflow Software Check During Function Call +-------------------------------------------------- 1. Memory Coloring Implementation Principle 1. Before using the stack, Thread will refresh the stack area to 0xdeadbeef @@ -44,6 +49,16 @@ Stack Overflow Software Check Usage: Enable CONFIG_ARMV8M_STACKCHECK or CONFIG_ARMV7M_STACKCHECK +Stack Overflow Software Check During Context Switching +------------------------------------------------------ + +1. Determine by detecting the number of bytes specified at the bottom of the stack. +2. Check if the sp register is out of bounds. + +Usage: + Enable CONFIG_STACKCHECK_SOFTWARE + You can set the detection length by STACKCHECK_MARGIN + Stack Overflow Hardware Check -----------------------------