Визуальный детектор утечек вылетает при выходе
ВСЕ,
У меня снова проблемы с VLD.
Я пытаюсь написать программу для Windows 8.1 с использованием MSVC 2010. Отладчик сообщает, что имеются утечки памяти. Поэтому я включил VLD и перекомпилировал программное обеспечение и все библиотеки (dll), которые использует бинарный файл.
Мне удалось запустить приложение и следовать процедуре, в которой я обнаружил утечки во время отладчика. Однако, когда я выхожу из приложения, у меня происходит сбой, и появляется сообщение:
Msgstr "Необработанное исключение в 0xXXXXX (vld_x86.dll) в. Нарушение прав чтения чтения 0xXXXXX".
Обратный след на момент аварии:
vld_x86.dll! VisualLeakDetector:: reportLeaks (heapinfo_t * heapinfo, bool & firstLeak, Set & aggregatedLeaks, unsigned long threadId) Строка 1851 + 0xb байт C++ vld_x86.dll!VisualLeakDetector::ReportLeaks() Строка 2406 C++ vLector:~VisualLeakDetector() Строка 643 + 0x5 байт C++ vld_x86.dll!::operator()() Строка 198 C++ vld_x86.dll!crt_seh_guarded_call:: operator ()<, &,>(__ acrt_lock_and_call:: __ l3:: && setup, _execute_onexit_table:: __ l22:: & action, __acrt_lock_and_call:: __ l4:: && cleanup) строка 199 + 0x________call_call_c.dll.dll< >(__acrt_lock_id lock_id, _execute_onexit_table::__l22:: && действие) линия +882 C++ vld_x86.dll!_execute_onexit_table(_onexit_table_t * Const таблица) Строка 221 + 0x11 байт C++ vld_x86.dll!common_exit(Const INT код_возврата, _crt_exit_cleanup_mode cleanup_mode, _crt_exit_return_mode return_mode) Строка 215 + 0xa байт C++ vld_x86.dll! _Cexit () Строка 302 + 0xb байт C++ vld_x86.dll! Dllmain_crt_process_detach (const bool is_terminating) Строка 109 C++ vld_x86.dll! Dllmain_crt_dispatch (недопустимая причина, недопустимая причина * const зарезервировано) Строка 134 + 0x10 байт C++ vld_x86.dll! DllEntryPoint (HINSTANCE__ * hinstDLL, unsigned long fdwReason, void * lpReserved) Строка 298 + 0xc байт C++ vld_x86.dll!LdrpCallInitRoutine(недействительно * Baseedddress С ontext, unsigned char (void *, unsigned long, _CONTEXT ) EntryPoint) Строка 98 + 0xc байтов C++ ntdll.dll! 774396de ()
[Кадры ниже могут быть неправильными и / или отсутствующими, символы не загружены для ntdll.dll] ntdll.dll! 77439658 ()
ntdll.dll! 7745cdc8 ()
ntdll.dll! 7744ffd8 ()
ntdll.dll! 7744acfa ()
Сейчас я не уверен, какой компилятор используется для создания библиотек VLD, но, возможно, здесь есть конфликт. Или я лаю не на то дерево, а проблема в другом?
Кто-нибудь может пролить немного света здесь?
Спасибо.