我的申请遇到了麻烦。每次我在调试器中启动它时,它都会在向地图添加项目时崩溃。当我将它作为独立应用程序启动时,它可以正常工作。
具有映射的对象被删除并重新创建,在重新创建之后,调试器崩溃并出现错误,整个pc被冻结。唯一的办法就是硬重启。
有谁知道可能是什么问题吗?
注。这是相关的代码片段:
头: /**
* List of propertyKey value
*/
typedef std::map<std::string, boost::any> Changes;
/**
* List of id changes
*/
typedef std::map<std::string, Changes> ChangesMap;
ChangesMap m_changeList;
Methodbody:
void PushController::CollectAttributeChanges(
const std::string &id, const std::string &key, const boost::any &value)
{
(m_changeList[id])[key] = value;
}
最诚挚的问候,Gerrit
您是否使用任何可能以某种方式影响STL二进制兼容性的标志(例如_SECURE_SCL=0)构建您的应用程序,并且以相同的方式构建boost ?
是否应用程序的其他部分正在破坏堆?
您可以在整个代码中插入_CrtCheckMemory()调用,以便在更接近堆损坏发生时检测堆损坏。