c - 在 HP-UX 上使用 libunwind 并获取堆栈跟踪

标签 c debugging stack-trace hp-ux

我有一个在 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/

相关文章:

c - POSIX 实现的状态

c - 按名称获取 C 中的进程 ID

javascript - 如何在 javascript(或 ecmascript?)中中断运行时异常(或错误)

python - 在 Python 中处理异常堆栈跟踪的正确方法

.net - 防止方法出现在 Stack Traces 中

JavaScript/TypeScript : Standard way to keep the cause of an Error

c - 需要像 read() 这样的函数将整数数据读入缓冲区并获得与 read() 相同的缓冲区值

c - C 中的位操作,设置最低有效位

ios - 当我在调试中放置它时,Xcode 8 不显示任何变量值

Visual Studio 2008 中的 Javascript 调试