Вы исчерпали место в стеке - очевидно - но я думаю, что вам нужно знать, что это значит, так что вот некоторая теория. Я нахожусь в старой доброй «сборке», но это общая проблема.
В компьютерной архитектуре есть область микросхемы, выделенная как «стек», которая обычно является «блокнотом» LIFO («последний пришел - первым вышел»). Данные «помещаются» и «выталкиваются» в стек и выводятся из него иногда автоматически, а иногда по выбору программистов.
У этого стека есть конечная длина (в * 86 переполнение этого стека перезаписывает другую специальную область чипа (EIP), которая является классическим методом взлома для изменения управления потоком программ, но в любом случае ...
В вашей программе каждый раз, когда происходит рекурсия или вызов метода, в стек загружается адрес возврата вызывающего кода (чтобы он мог вернуться и продолжить). Это то, что вызывает переполнение стека.