我在MFC应用程序上工作。用户报告该应用程序随机崩溃。崩溃发生在运行应用程序的不同阶段,并且无法重现(应用程序可能由于多种原因而崩溃,例如UI,数据不一致,线程问题)。
我该如何调试这些问题。
请您参考如下方法:
当您有多个共享数据的线程时,您需要提供对数据的同步访问。您必须处理与同时访问多个线程可同时访问的变量和对象有关的同步问题。否则,您最终将出现无法预测的行为,包括应用程序崩溃。因此,请使用CCriticalSection和类似的对象来保护您的数据。
这是一个例子:
CSingleLock lock(&m_CritSection);
lock.Lock();
m_Data = data;
lock.Unlock();

