fix: Fix stack related errors (#1167)

* fix: Fix stack related errors

Increase kernel stack to 32k.
Add a stack overflow test.
Remove manual placement of guard pages

Signed-off-by: Godones <chenlinfeng25@outlook.com>

* fix: update userstack comments

Signed-off-by: Godones <chenlinfeng25@outlook.com>

---------

Signed-off-by: Godones <chenlinfeng25@outlook.com>
This commit is contained in:
linfeng
2025-05-22 08:52:32 +08:00
committed by GitHub
parent 880720250e
commit ba734c8d6b
6 changed files with 159 additions and 123 deletions

1
user/apps/test_stack/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
test_stack

View File

@ -0,0 +1,20 @@
ifeq ($(ARCH), x86_64)
CROSS_COMPILE=x86_64-linux-musl-
else ifeq ($(ARCH), riscv64)
CROSS_COMPILE=riscv64-linux-musl-
endif
CC=$(CROSS_COMPILE)gcc
.PHONY: all
all: main.c
$(CC) -static -o test_stack main.c
.PHONY: install clean
install: all
mv test_stack $(DADK_CURRENT_BUILD_DIR)/test_stack
clean:
rm test_stack *.o
fmt:

View File

@ -0,0 +1,13 @@
#include <stdio.h>
void overflow(int depth) {
char buffer[1024 * 1024]; // 占用一些栈空间
printf("Recursion depth: %d\n", depth);
overflow(depth + 1); // 递归调用
}
int main() {
overflow(1);
printf("This line will not be printed due to stack overflow.\n");
return 0;
}