Добрый день.
Пишу софт для спецефической платформы (компилирую GNUARMом)- при использовании стандартного оперетора new приложение падает. Поэтому заместил стандартные операторы на свои.
Но при генерировании исключения внутри функции __сxa_alloc_exception выделяется память не через мои операторы, что приводит к падению. Как этого избежать?
Спасибо
Здравствуйте, ankorol, Вы писали:
A>при использовании стандартного оперетора new приложение падает.
вы пытались разобраться в причинах такого странного поведения?
Здравствуйте, ankorol, Вы писали:
A>Но при генерировании исключения внутри функции __сxa_alloc_exception выделяется память не через мои операторы, что приводит к падению. Как этого избежать?
Может просто попробовать отключить исключения?
Здравствуйте, uzhas, Вы писали:
U>вы пытались разобраться в причинах такого странного поведения?
Это особености платформы, в документации к этой платформе английским по белому написано не используйте тот new который мы вам поставляем, а переопределите его.
W>спасет отца русской демократии? p будет 0, если память выделить не удалось.
Моя кастомная алокация работает отлично во всех местах где я использую new. Она не работает когда я делаю throw MyException(). Потому что где-то в рантайме (libstc++.a) падает на выделении памяти.
Здравствуйте, ankorol, Вы писали:
A>Всем спасибо, A>Проблема исщезла при уменьшении размера локальных переменных функции, видимо памяти просто не хватило...
Здравствуйте, alexeiz, Вы писали:
A>Здравствуйте, ankorol, Вы писали:
A>>Всем спасибо, A>>Проблема исщезла при уменьшении размера локальных переменных функции, видимо памяти просто не хватило...
A>Скорее стек исчерпался.
Да, именно стек, в хипе еще можно выделять и выделять.