奇怪的是,hpux unwind API _UNW_STACK_TRACE不采用文件描述符,而是采用FILE*
. 较新的 APIuwx_stack_trace
也采用FILE*
.
由于这两个都使用缓冲 IO 而不是(信号安全 IO 接口)open
// write
,close
因此它们都不能安全地用于信号处理程序(这是人们希望这样做的最明显的地方之一)。
在我们的一个(可能现在已经死掉的)ia64 平台上,我们曾经有自己的 unwind 实现,但它是一个难以维护和易碎的野兽,所以我不想再走那条路了。HPUX 堆栈展开还有其他选项吗?