运行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 Studio2017。在VS2017中运行内置的智能感知分析器后,发现并删除了许多错误,但仍然会发生异常。在Visual C ++ 6.0中内置的较旧版本的程序中也会发生这种情况。 我正在寻找有关如何查明此错误的根源以及如何解决该错误的建议。
我们已经尝试使用VS2017调试器进行回溯,并且还尝试进入发生异常的函数调用:
size = m_ShiftList.GetDC()->GetTextExtent(str);
,但是调试器此时拒绝进入该函数。 在运行的最初30-45分钟内,程序可以顺利通过此点。删除此代码(因为我们不知道文本的大小就可以生存)将相同的异常移动到不同的位置。