C ++ Programm падает только в отладчике - PullRequest
0 голосов
/ 22 сентября 2011

У меня проблемы с моим заявлением. Каждый раз, когда я запускаю его в отладчике, происходит сбой при добавлении элемента на карту. Когда я запускаю его как отдельное приложение, оно работает правильно.

Объект, имеющий карту, удален и воссоздан, а после восстановления отладчик вылетает с ошибкой, и весь компьютер зависает. Единственный способ - сделать жесткий перезапуск.

Кто-нибудь знает, в чем может быть проблема?

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 Ответ

1 голос
/ 22 сентября 2011

Создавали ли вы свое приложение с любыми флагами, которые могут каким-либо образом влиять на двоичную совместимость STL (например, _SECURE_SCL = 0), и таким же образом создается буст?

Может ли другая часть приложения повреждать кучу?

Вы можете вставлять вызовы _CrtCheckMemory () по всему коду, чтобы обнаруживать повреждения кучи ближе к тому, когда они произошли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...