visual c++程序只在调试器中崩溃



我的申请遇到了麻烦。每次我在调试器中启动它时,它都会在向地图添加项目时崩溃。当我将它作为独立应用程序启动时,它可以正常工作。

具有映射的对象被删除并重新创建,在重新创建之后,调试器崩溃并出现错误,整个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()调用,以便在更接近堆损坏发生时检测堆损坏。

最新更新