相当奇怪的是,hpux unwind API _UNW_STACK_TRACE没有采用文件描述符,而是采用FILE*
。较新的API uwx_stack_trace
也需要FILE*
。
这两个都使用缓冲IO而不是(信号安全IO接口)open
/ write
/ close
,这些都不能安全地用于信号处理程序(其中一个)人们希望这样做的最明显的地方。)
在我们的一个(可能已经死了)ia64平台上,我们曾经有过自己的展开实现,但它是一个维护和片状的野兽,所以我不想再次走这条路。 HPUX堆栈还有其他选项可以放松吗?
答案 0 :(得分:0)
我发现hpux documentation详细说明了他们的stackwalk迭代器接口。不幸的是,有点令人难以置信的是,在调试器中尝试这一点表明它也在信号环境中被破坏(uwx_init
调用malloc
!)