Przejdź do treści
Błędy kompilatora RustKrytyczny
panic-stack-overflow

Panic — Przepełnienie stosu

Program spanikował z powodu nadmiernego zużycia stosu, typowo przez głęboką rekurencję.

rustcargo

Co powoduje ten błąd

Funkcja rekurencyjna wywołuje się zbyt wiele razy bez osiągnięcia przypadku bazowego lub przypadek bazowy nigdy nie jest wyzwalany. Każde wywołanie funkcji zużywa przestrzeń na stosie, a przekroczenie limitu stosu powoduje awarię.

Jak to naprawić

Dodaj lub popraw przypadek bazowy w funkcjach rekurencyjnych. Zamień rekurencję na iterację. Zwiększ rozmiar stosu za pomocą std::thread::Builder. W miarę możliwości stosuj wzorce rekurencji ogonowej.

Oficjalna dokumentacja

Powiązane kody błędów