Вопрос про ужасы многопоточности
От: vitasR  
Дата: 28.10.10 13:26
Оценка:
Ситуация: есть средних размеров проектик на C++. Изредка (но регулярно) падает в случайных местах, по всем признакам портится память.
После долгих поисков выяснилось, что в одной из функций (которая в процессе эволюции проекта стала многопоточной) вызывалась некая ф-ция из third party модуля.
Функция за каким-то хреном использовала глобальную переменную — экземпляр вспомогательного класса, в котором производились интенсивные манипуляции с памятью.

Т.е. ошибка программиста была в том, что он понадеялся что этот third party код является потокобезопасным, но он по факту таковым не был.
Жутко жалко кучу тупо потерянного времени ;(.

Вопрос: а есть какой-нить статический анализатор кода C++ который бы выявлял подобные проблемы? Ведь по идее можно ж вычислить одновременный доступ к глобальной переменной?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.