【发布时间】:2009-04-27 20:56:28
【问题描述】:
我有一些最近在 Linux 上编译的遗留 C 代码。在原始 HPUX 上,应用程序打开和关闭多个 curses 窗口。在 Linux 机器上,它可以处理一个窗口,但如果我关闭该窗口,它会使程序崩溃,并显示“已中止”的错误消息。有什么想法吗?
【问题讨论】:
我有一些最近在 Linux 上编译的遗留 C 代码。在原始 HPUX 上,应用程序打开和关闭多个 curses 窗口。在 Linux 机器上,它可以处理一个窗口,但如果我关闭该窗口,它会使程序崩溃,并显示“已中止”的错误消息。有什么想法吗?
【问题讨论】:
是的。使用 ulimit(1) 更改您的选项,以便在它中止时保存核心转储。然后用 gdb(1) 查看核心转储,找出它在哪里中止并回复我们。
【讨论】:
考虑到查理·马丁的回应,您似乎没有打开窗户,然后关闭了一个未打开的窗户,结果很戏剧性。查看 Curses 初始化函数和窗口打开调用的返回码。
【讨论】:
发现是 touchwin 命令导致它失败。删除那行代码似乎没有负面影响。 :-) 谢谢大家的帮助。到处投票。
【讨论】: