Нарушение прав доступа в Visual Studio при компиляции с многопоточной отладочной DLL

Я создаю приложение, используя GDAL / OGR библиотеки и столкнулись с действительно странной проблемой, а именно, получить нарушение доступа ошибка при запуске моей программы, скомпилированной с Многопоточная отладочная DLL (/MDd) библиотека времени исполнения вариант. Следующий пример является минимальным примером для демонстрации проблемы:

#include <ogr_geometry.h>

int main(int argc, char* argv[])
{
OGRPoint *point = new OGRPoint;
delete point; // segmentation fault
return 0;
}

Аналогичная проблема возникает с другими типами OGR в GDAL / OGR библиотека, поэтому она не связана с OGRPoint учебный класс. Однако нет проблем, когда память выделяется в стеке, а не в куче.

Код выполняется нормально, когда я использую Многопоточная DLL конфигурация вместо. (Таким образом, в основном режим Release хорош, но режим Debug сталкивается с упомянутой ошибкой нарушения прав доступа.) Программа также работает нормально на Linux, скомпилированном с g++,

Callstack является следующим:

ntdll.dll!_RtlReportCriticalFailure@8() Unknown
ntdll.dll!_RtlpHeapHandleError@4()  Unknown
ntdll.dll!_RtlpLogHeapFailure@24()  Unknown
ntdll.dll!RtlFreeHeap() Unknown
AcLayers.dll!6d7158bf() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for AcLayers.dll]
gdal201.dll!0f87bdbd()  Unknown
TestProject.exe!main(int argc, char * * argv) Line 7    C++
[External Code]

Любые идеи о том, что вызывает эту проблему?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]