Кажется, я нарвался на случай, когда при обычно запуске программы (релизной или с дебаг-символами) она не читает\парсит файл, а при запуске в дебаге, с пошаговым перемещением между командами она читает и парсит, но херню. Скорее всего это гонки. Стейты теряются и ещё что-то. Но странно, тут вроде бы один поток должен работать.
не люблю когда так. Придётся дебажить как растоёбы, везде расставляя printf