在 HP-UX 上使用 libunwind 并获取堆栈跟踪
我有一个在 HP-UX 环境中执行的 C 应用程序,我需要获取堆栈跟踪。
我正在尝试使用 U_STACK_TRACE,但是到 stderr 的输出将转到其他地方,我需要将其打印到字符串中。
我该怎么做?
IE 如何获取 U_STACK_TRACE 的输出并将其放入字符串中而不是写入 stderr。
I have a C application that is executing in an HP-UX environment and I need to get the stacktrace.
I am attempting to use U_STACK_TRACE, but output to stderr is going somewhere else and I need it printed to a string.
How can I do this?
I.E. How can I take the output from U_STACK_TRACE and put it in a string instead of it being written to stderr.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
U_STACK_TRACE() 将格式化的堆栈跟踪打印到标准错误。 _UNW_STACK_TRACE() 在参数 out_file 指示的输出流上生成格式化的堆栈跟踪。该流必须是可写流才能生成输出。
因此,使用 fopen() 打开文件并调用 _UNW_STACK_TRACE() 而不是 U_STACK_TRACE()。
U_STACK_TRACE() prints a formatted stack trace to standard error. _UNW_STACK_TRACE() produces a formatted stack trace on the output stream indicated by parameter out_file. The stream must be a writable stream for output to be produced.
So, open a file using fopen() and call _UNW_STACK_TRACE() instead of U_STACK_TRACE().