push_back () вызывает остановку программы перед входом в main ()

Я разрабатываю на C ++ для моей платы обнаружения STM32F3 и использую std :: deque в качестве очереди. После попытки отладки моего кода (непосредственно на устройстве с ST-link или в симуляторе) код в конечном итоге останавливается на точке останова, прежде чем даже вводить мой код в main (). Тем не менее, SystemInit () настраивает плату просто отлично .. Я '

Мы проследили это поведение до использования push_back () (и push_front), поскольку закомментирование его из кода решает проблему. Посредством дизассемблирования я обнаружил, что после его использования выполнение останавливается в команде BKPT с точкой останова и выиграл 'двигаться дальше после возобновления исполнения. Эта инструкция является частью вызова _sysopen () с путем вызова:

__main -> __scatterload -> __scatterload_null -> __rt_entry -> __rt_lib_init -> __rt_lib_init_atexit_1 -> _initio -> freopen -> _sysopen

Что меня интригует, так это призыв к_initio, который отсутствует, если push_back isn 'т, потому что нет__rt_lib_init_atexit_1, Введение push_back также увеличивает размер кода с 10 кБ до 34 кБ.

Может ли это быть результатом неправильной конфигурации или я должен попробовать другую IDE? Я'м из идей.

Ответы на вопрос(2)

Ваш ответ на вопрос