在HP-UX上使用libunwind并获取stacktrace

在HP-UX上使用libunwind并获取stacktrace,c,debugging,stack-trace,hp-ux,C,Debugging,Stack Trace,Hp Ux,我有一个在HP-UX环境中运行的C应用程序,我需要获取stacktrace 我正在尝试使用U_STACK_TRACE,但输出到stderr的内容将转到其他地方,我需要将其打印为字符串 我该怎么做 也就是说,我如何从U_STACK_TRACE获取输出并将其放入字符串中,而不是将其写入stderr。U_STACK_TRACE()将格式化的堆栈跟踪打印为标准错误_UNW_STACK_TRACE()在参数out_file指示的输出流上生成格式化的堆栈跟踪。流必须是可写流才能生成输出 因此,使用fopen

我有一个在HP-UX环境中运行的C应用程序,我需要获取stacktrace

我正在尝试使用U_STACK_TRACE,但输出到stderr的内容将转到其他地方,我需要将其打印为字符串

我该怎么做

也就是说,我如何从U_STACK_TRACE获取输出并将其放入字符串中,而不是将其写入stderr。

U_STACK_TRACE()将格式化的堆栈跟踪打印为标准错误_UNW_STACK_TRACE()在参数out_file指示的输出流上生成格式化的堆栈跟踪。流必须是可写流才能生成输出


因此,使用fopen()打开一个文件并调用_UNW_STACK_TRACE(),而不是U_STACK_TRACE()。

顺便说一句,我从使用Google找到的在线手册页中找到了第一段。你应该找个时间试试,或者换句话说,RTFM;)是的,我有rtfm,但我想将其捕获为字符串,而不是文件或流。这可能吗?显然不可能,但您可以将其输出到临时文件,然后将该文件读入缓冲区。您可以创建一个fifo或管道,然后用文件指针将其包装,然后从fifo读取到字符串缓冲区中。