Вчера с прикольным багом столкнулся. Маленький веб-сервис, принимает запросы, отвечает JSON'ом. Посылаю запрос - отвечает, все хорошо. Посылаю еще раз - еще раз тот же ответ. Так несколько раз успешно, потом бац - при том же запросе вдруг Access Violation. Потом на тот же запрос опять успешно отвечает все тот же ответ. Т.е. при одних и тех же данных то работает, то не работает. Заметил, что чем больше обрабатывается данных, тем чаще не работает. Отладчик в поиске причины оказался не очень полезен: ну да, где-то в RTTI данных (которые автоматически генерятся компилятором) внезапно оказывается неожиданный null, и рантайм на него натыкается, но почему там null? Пришлось применить Метод Божественного Озарения™. Оказалось, я недавно перевел свои робингудские хэш-таблицы на использование библиотечного std.container.Array, который данные вне GC-кучи хранит и сам менеджит. А в нем оказался баг: при определенных условиях он забывал оповестить GC об имеющихся в массиве указателях, GC приходил и собирал те объекты, указатели в массиве оказывались протухшими. Главное в применении такого метода отладки - отойти подальше от монитора и клавиатуры.