Мне нужно написать библиотеку C, которая будет интегрирована в базу кода C ++. Эта библиотека может вызывать код C ++, переданный в качестве обратного вызова. Эти функции могут вызывать исключения C ++.
Я хотел бы убедиться, что код очистки запускается во время процесса раскрутки стека. Я мог бы использовать атрибут cleanup
, чтобы убедиться, что:
Если -fexceptions включен, функция cleanup_function запускается во время раскрутки стека, которое происходит во время обработки исключения.
Из G CC docs .
К сожалению, я не могу использовать атрибут очистки. Я хотел бы зарегистрировать функцию очистки, которая будет запускаться во время разматывания стека программно, используя переносимый C.
Возможно ли это?