2012-06-22 3 views
0

Довольно странно, что hpux unwind API _UNW_STACK_TRACE не принимает дескриптор файла, а вместо этого принимает FILE*. Более новый API uwx_stack_trace также принимает FILE*.Есть ли безопасная версия функции hpux _UNW_STACK_TRACE для стирания стека?

С обоими из этих использованием буферных (безопасных интерфейсов ввода-вывода сигналов) IO, а не open/write/close, ни один из них можно безопасно использовать в обработчике сигнала (один из наиболее очевидных мест, где можно было бы пожелать сделать это).

На одной из наших (возможно, ныне мертвых) платформ ia64 у нас когда-то была своя собственная работа по восстановлению, но это было зверь для поддержания и шелушения, поэтому я не хочу снова идти по этому маршруту. Есть ли еще какие-то варианты для стека HPUX?

ответ

0

Я нашел hpux documentation, который подробно описывает их интерфейсы итератора стека. К сожалению, и несколько невероятно, попробовав это в отладчике, он показывает, что он также поврежден в сигнальном контексте (uwx_init вызывает malloc!)

Смежные вопросы