Я попытался отладить код, который вы опубликовали, и он, кажется, работает нормально (я использую Visual Studio 2010 SP1). Когда я размещаю точку останова и запускаю код (как консольное приложение), он останавливается на точке останова несколько раз, и я могу перейти к следующему выражению и посмотреть состояние локальных переменных.
Вы можете попробовать проверить флаги компилятора - отладка работает лучше всего, когда вы отключаете оптимизацию и хвостовые вызовы (это может быть особенно актуально для рекурсивных функций). Когда я собираю проект, флаги включают следующее: --debug:full --optimize- --tailcalls-
.
![enter image description here](https://i.stack.imgur.com/ccm7T.png)