Долбился сейчас три часа об баг. И это просто жесть.
Короче, есть библиотечка. Где-то внутри нее, никак не опознаваемый и не видимый снаружи библиотечки есть некий класс с названием MySuperClass и в одном из файлов статический объект
static MySuperClass* global_super = NULL;
Сделано это было давно и уже забыто.
Но вот в основном приложении, который юзает эту библиотечку мне понадобился схожий функционал этого класса, но немного другой.
Я взял, копирнул тот класс и сам статический объект из библиотечки и класс изменил как мне надо. А вот названия класса и имя статического объекта — не изменил.
Ну и началось. Падение на любом обращении к любому члена класса.
Долбежка башкой об клавиатуру и создание пустых проектов с таким же классом (без библиотечки) приводило к тому, что все работало.
Пока мне не стрельнуло переименовать класс и статический объект. И конечно же все заработало. Он падал на обращении к полям класса, которых не было в классе внутри библиотеки.
Это что ж такое-то!!!
((
Это хорошо еще у меня были исходники библиотеки. А если б я случайно назвал класс и переменную так же как создатели библиотеки — да этот баг вообще бы никогда не поймался бы.
Вот это жесть!!!
((