Это может быть ссылка на компонент из интерфейса Xib, который вы переименовали или удалили. Для меня работает референция.
Это ошибка Вальгринда. Во-первых, -fsanitize=leak
ничего не показывает. Во-вторых, сам Valgrind утверждает , что:
Прежде всего: расслабьтесь, это, вероятно, не ошибка, а функция. Многие реализации стандартных библиотек C ++ используют свои собственные распределители пула памяти. Память для целого ряда разрушенных объектов не сразу освобождается и возвращается обратно в ОС, а хранится в пулах (-ях) для последующего повторного использования. Тот факт, что пулы не освобождаются при выходе из программы, заставляет Valgrind сообщать об этой памяти по-прежнему доступной. Поведение не для свободных пулов на выходе может быть названо ошибкой библиотеки.
Используя GCC, вы можете заставить STL использовать malloc и освободить память как можно скорее, глобально отключив кеширование памяти , Осторожно! Это может замедлить вашу программу, иногда резко.
С GCC 2.91, 2.95, 3.0 и 3.1 скомпилируйте весь источник, используя STL с -D__USE_MALLOC. Осторожно! Это было удалено из GCC, начиная с версии 3.3.
С GCC 3.2.2 и более поздними версиями вы должны экспортировать переменную среды GLIBCPP_FORCE_NEW перед запуском вашей программы.
С GCC 3.4 и более поздними версиями, эта переменная изменила имя на GLIBCXX_FORCE_NEW.
[...]
Я предполагаю, что предполагаемые пулы памяти освобождены после завершения программы в так называемом стартовом коде, который вызывает
main
среди других настроек. Внутренние функции, определенные вне кода пользователя, должны обрабатываться так, как если бы они не существовали, поэтому Valgrind не может (и не должен) видеть дополнительные освобождения.
Рассмотрим следующий тривиальный файл include:
#ifndef TRIVIAL_INCLUDE_FILE
#define TRIVIAL_INCLUDE_FILE
static int *x = new x (0);
#endif
Для gcc 6 и выше произошло связанное исправление ошибок:
С помощью gcc 5 вы также можете получить такое же предупреждение, не включая iostream
.
Итак, если вы видите аналогичное предупреждение, относящееся к dl-init.c
, и вы используете gcc 5, рассмотрите обновление до более новой версии (gcc> = 6) или попытайтесь скомпилировать с clang.