OpenCV 3.0 + детектор утечки памяти Visual Studio «ложное» срабатываниеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 OpenCV 3.0 + детектор утечки памяти Visual Studio «ложное» срабатывание

Сообщение Anonymous »

Я хотел бы создать проект с включенным детектором утечек памяти Visual Studio (детектор утечки памяти)

Он всегда работал нормально, и я мог легко найти утечки памяти, выполнив несколько тестов в своем приложении и затем проверив отчет.

Но после статического связывания OpenCV 3.0 с моим проектом я получил несколько ложных срабатываний.

Например, самая неприятная ошибка возникает из-за метода StereoBMImpl::compute и вызова: ocl::useOpenCL()

После отладки я нашел источник «утечки»:

Код: Выделить всё

TLSData& getCoreTlsData()
{
static TLSData *value = new TLSData();
return *value;
}
После анализа этого кода мы знаем, что статический объект выделяется только один раз и все должно быть в порядке. Но теперь у меня есть куча ложноположительных отчетов об утечках памяти, например:

Код: Выделить всё

{1370349} normal block at 0x0E74D560, 24 bytes long.
Data: <                > FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
{1370348} normal block at 0x0E74D4E0, 64 bytes long.
Data:  60 D5 74 0E CD CD CD CD CD CD CD CD CD CD CD CD
И теперь очень сложно найти реальные утечки памяти в моем приложении, потому что есть множество ложных срабатываний от OpenCV. Я также не могу запускать автоматические тесты на утечку памяти, потому что выходные данные всегда содержат некоторые утечки.

Есть ли способ удалить эти «псевдо» ошибки (если возможно, не меняя исходный код OpenCV)? Это очень раздражает.

Я полагаю, что другие детекторы утечек памяти также будут сообщать о некоторых подобных псевдоутечках, поскольку оператор new выполняется без удаления (объект автоматически очищается ОС).

Подробнее здесь: https://stackoverflow.com/questions/328 ... e-positive
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»