У меня есть большое приложение, которое использует динамически загружаемые библиотеки. В конце программы при ее завершении либо происходит ошибка, либо выдается сообщение «glibc обнаружил поврежденный двойной связанный список» Глядя на вывод valgrind, я думаю, что это так:
допустим, у нас есть три файла:
utilities.c - compiled with -fPIC and used ar and ranlib to create utilities.a.
dynamicallyloaded.c- compiled with -fPIC and -shared and linked with utlities.a to generate dynamicallyloaded.so
main.c - compiled with -fPIC and linked with utilities.a to create main. main dynamically loads and uses dynamicallyloaded.so .
utilities.h - delclared a class IfTrackerFile with AubFileName as a static string member like static string AubFileName;
utilities.cpp - defines the static variable: string IfTrackerFile::AubFileName;
valgrind out говорит, что в строке неверно free / delete / delete:
строка IfTrackerFile :: AubFileName;
Понятия не имею, что происходит.
искренне признателен за любую помощь / направление в этом отношении.