Программа вылетает после 30-45 минут работы со следующим сообщением:
Exception Thrown at 0xFCA6551 (mfc140d.dll) in WinPDM.exe: 0xC0000005: Access Violation reading location 0x00000008.
Исключение возникает при запуске как в режиме отладки, так и из сборки выпуска в Visual Studio 2017. Программа неожиданно показываетошибки в окнах рендеринга и кнопках, и если кто-то пытается нажать кнопку или выбрать элемент, возникает исключение.Первоначально программа была написана на Visual C ++ 6.0 и несколько успешно перенесена в Visual Studio 2017. Многие ошибки были обнаружены и устранены после запуска встроенного анализатора intellisense в VS2017, но исключение по-прежнему возникает.Это также происходит в более старых версиях программы, встроенных в Visual C ++ 6.0.Я ищу предложения о том, как точно определить причину возникновения этой ошибки и как ее устранить.
Мы уже пытались отследить с помощью отладчика VS2017, а также попытались войти в вызов функции, где возникла исключительная ситуация.происходит:
size = m_ShiftList.GetDC()->GetTextExtent(str);
, но на этом этапе отладчик отказывается входить в функцию.Программа может пройти через эту точку без проблем в течение первых 30-45 минут работы.Удаление этого кода (поскольку мы можем жить, не зная размера текста), переместило то же исключение, чтобы оно появилось в другой точке.