我有一个在 HP-UX 环境中执行的 C 应用程序,我需要获取堆栈跟踪。
我正在尝试使用 U_STACK_TRACE,但到 stderr 的输出将转到其他地方,我需要将其打印到字符串中。
我该怎么做?
即如何从 U_STACK_TRACE 获取输出并将其放入字符串中而不是写入 stderr。
最佳答案
U_STACK_TRACE() 将格式化的堆栈跟踪打印到标准错误。 _UNW_STACK_TRACE() 在参数 out_file 指示的输出流上生成格式化的堆栈跟踪。该流必须是可写流才能生成输出。
因此,使用 fopen() 打开文件并调用 _UNW_STACK_TRACE() 而不是 U_STACK_TRACE()。
关于c - 在 HP-UX 上使用 libunwind 并获取堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516273/