如何捕获 Ncurses 应用程序的堆栈跟踪?

How to capture stack trace for Ncurses app?

通常,当从命令行 运行 一个应用程序时,当出现问题时,我会得到一个很好的打印跟踪。但是,由于我碰巧正在处理 Ncurses 应用程序,因此跟踪与 运行 的界面混合在一起,输出变得混乱。像这样:

具体来说,我正在从事这个项目:todo-curses

我将应用程序 运行 作为 Rake 任务,所以我认为 --trace 选项会对我有所帮助,但我似乎无法弄清楚。有没有一种好方法可以将 app 的输出记录到文件或其他内容中,并且 not 不包含 Ncurses 接口?

这取决于应用程序:curses 默认写入标准输出。如果您(作为 curses 应用程序的开发人员)使用 newterm 来初始化库而不是 initscr,那么您可以告诉它将屏幕界面写入标准错误。

但是其他语言的 curses 绑定的开发人员通常会忽略 newterm 作为替代方案,只是为了让事情变得简单。比如github上的Ruby诅咒就有这个缺陷。也许错误报告到期了。