我有一个在HP-UX环境中执行的C应用程序,我需要获取堆栈跟踪。
我正在尝试使用U_STACK_TRACE,但输出到stderr正在其他地方,我需要将它打印成一个字符串。
我该怎么做?
即。如何从U_STACK_TRACE获取输出并将其放在字符串中,而不是将其写入stderr。
答案 0 :(得分:1)
U_STACK_TRACE()将格式化的堆栈跟踪打印到标准错误。 _UNW_STACK_TRACE()在参数out_file指示的输出流上生成格式化的堆栈跟踪。流必须是可写的流,以便生成输出。
因此,使用fopen()打开文件并调用_UNW_STACK_TRACE()而不是U_STACK_TRACE()。