Как я понял, падение происходит где-то внутри acraw(), возможно, внутри prepareKeys(). До выделения кода генерации ключей в отдельную функцию оно точно так же падало, кстати.
Я так и сделал в функции, генерирующей ключи (мне кажется, падение происходит в ней). И она отрабатывает минимум (максимум?) два раза из требуемых семи, судя по максимальному количеству строк в выводе, которое я вижу.
Есть ещё функции кэширования и чтения из структуры кэша ключей, в которых я не вполне уверен, но я полностью закомментировал их использование, и ошибка не пропала.
Denwebart, не могу согласиться, что в Windows плохо даже на HDD (сам работал). Ставил на Windows 7 SP1 Apache 2.4 и PHP (5.3, 5.6, 7.2, 7.4 и 8.0). Всё летает. Также работал с проектами на Symfony (2.x и 5.x). Да, пятёрка подтормаживает, по крайней мере на этапе создания кэша шаблонов в большом проекте, но в остальном - терпимо. Двойка - вообще летает.
Я не понимаю, что у вас тормозит - у вас или процессор ужасно медленный, или медленная оперативная память, или тяжеленные неоптимизированные CMS-ки. Сам PHP (как и Apache) не тормозит ни раз на винде.
Denwebart, всё дело в CMS и фреймворках - они очень тормозные, вот серьёзно. А насчёт того, почему летает под Linux... Ну, тут моих знаний не хватает, трудно сказать. Возможно, дело в более оптимизированной файловой системе, а вовсе не в веб-сервере. Уж сколько я читал жалобы людей про тормоза докера на Windows (при любых настройках, когда надо лопатить много мелких файлов)...
Прошу прощения, я снимаю отметку о решении. Ваш ответ не решает проблему: сейчас у меня этот баг происходит и под gcc, и под g++, и данный флаг ничем не помогает. Это какие-то кэши, которые где-то оседают во временных папках (виртуальной среды ucrt64?), и у меня нет возможности их очистить.
Поставил "-O0" как вы предложили, но нумерация строк всё так же сбоит. Значит или дело не в оптимизации в данном случае, или обёртка от VSCode игнорирует часть флагов в режиме отладки по каким-то своим причинам...
Кстати, проблема с тем, что отмечаются не те строчки, имеет место даже тогда, когда я перед отладкой делаю обычную компиляцию и запуск. Это тоже как-то связано с оптимизациями?
На самом деле, есть и ещё одна проблема, но возможно стоит создать под неё отдельный вопрос. Полученные при компиляции .exe файлы не запускаются через проводник. В смысле, окно командной строки мелькает на долю секунды, и тут же закрывается.
Те методы, которые я использовал в универе, чтобы оставить окно открытым, сейчас при компиляции у меня почему-то не работают. Впрочем, когда я запускаю приложение при открытой VS Code в режиме без отладки, этой проблемы нет: окно остаётся на экране, и есть надпись "Нажмите любую клавишу . . .", видимо потому, что там неявно всё это обёрнуто в .bat скрипт с вызовом pause.