C ++程序仅在调试器中崩溃

时间:2011-09-22 11:59:24

标签: c++ visual-c++

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

删除并重新创建具有映射的Objekt,并且在重新创建之后,调试器因错误而崩溃并且整个pc被冻结。唯一的方法是重新启动。

有谁知道可能是什么问题?

P.s。:这是相关的代码段:

部首:

        /**
         * 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;
}

祝你好运, 格里特

1 个答案:

答案 0 :(得分:1)

您是否使用任何可能以某种方式影响STL二进制兼容性的标志构建您的应用程序(例如_SECURE_SCL = 0)并以相同方式构建boost?

应用程序的另一部分是否会破坏堆?

您可以在整个代码中插入_CrtCheckMemory()调用,以检测更接近发生时的堆损坏。