Можно в своей функции создать ScopeGuard, который в деструкторе сделает abort(), а при успешном выходе из функции отключать Guard. Возможно, стек трейс останется.
Re[2]: Отключить обработку исключений для куска кода
Здравствуйте, Masterspline, Вы писали:
M>Можно в своей функции создать ScopeGuard, который в деструкторе сделает abort(), а при успешном выходе из функции отключать Guard. Возможно, стек трейс останется.
IMHO, обсуждение было бы более конструктивным, если бы был представлен пример, где-нибудь на ideone, например или другом онлайн компиляторе, который позволяет выполнять код.
Re[2]: Отключить обработку исключений для куска кода
Здравствуйте, Mazay, Вы писали:
X>>тогда так: создавай .so библиотеку экспортирующую __cxa_allocate_exception() функцию, и в этой функции зови std::abort(), или что душе угодно. подгружать при помощи: LD_PRELOAD=mydll.so ./myapp M>Дааа! Именно то, что надо!
Это работает, только если каждое исключение фатальное. А если нет?
А если нет, то лучше в этой библиотеке залогировать бэктрэйс в __cxa_throw или через __gxx_personality_v0 (?).
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Masterspline, Вы писали:
M>>... который позволяет выполнять код. X>+ собирать .so`шки и подсовывать их программе.
Здравствуйте, Mazay, Вы писали:
M>Есть моя функция, которая может бросать исключения. M>Есть библиотечный код, который эту функцию вызывает. M>Библиотечный код заворачивает вызов моей функции в try/catch и обрабатывает исключения неким своим образом, который мне не нравится. M>Я хочу, чтобы программа просто падала при вылете исключений — хочу видеть дамп ядра.
Всё, что тебе надо было сделать -- запустить отлдадчик, и сказать "Break on exceptions".
Всё, что надо было сделать авторам тех библиотек, что ты использовал, снабдить
все throw перед ними ASSERT-ами.
Здравствуйте, Mazay, Вы писали:
M>Есть моя функция, которая может бросать исключения. M>Есть библиотечный код, который эту функцию вызывает. M>Библиотечный код заворачивает вызов моей функции в try/catch
сам ключ передавай в параметрах командной строки. Тогда случайно эти строки не включатся.
Конечно, нужны исходники либы.
P.S. Отмаза. Естессно, это хакерское решение, костыль под краткосрочную задачу. В качестве постоянной или долговременной практики я такое категорически осуждаю