0

奇怪的是,hpux unwind API _UNW_STACK_TRACE不采用文件描述符,而是采用FILE*. 较新的 APIuwx_stack_trace也采用FILE*.

由于这两个都使用缓冲 IO 而不是(信号安全 IO 接口)open// writeclose因此它们都不能安全地用于信号处理程序(这是人们希望这样做的最明显的地方之一)。

在我们的一个(可能现在已经死掉的)ia64 平台上,我们曾经有自己的 unwind 实现,但它是一个难以维护和易碎的野兽,所以我不想再走那条路了。HPUX 堆栈展开还有其他选项吗?

4

1 回答 1

0

我找到了hpux 文档,其中详细介绍了他们的 stackwalk 迭代器接口。不幸的是,有点令人难以置信的是,在调试器中尝试这个表明它在信号上下文中也被破坏了(uwx_init调用malloc!)

于 2012-06-29T03:28:22.540 回答