【问题标题】:Curses Window in Linux Causing AbortLinux中的Curses窗口导致中止
【发布时间】:2009-04-27 20:56:28
【问题描述】:

我有一些最近在 Linux 上编译的遗留 C 代码。在原始 HPUX 上,应用程序打开和关闭多个 curses 窗口。在 Linux 机器上,它可以处理一个窗口,但如果我关闭该窗口,它会使程序崩溃,并显示“已中止”的错误消息。有什么想法吗?

【问题讨论】:

    标签: linux curses hp-ux


    【解决方案1】:

    是的。使用 ulimit(1) 更改您的选项,以便在它中止时保存核心转储。然后用 gdb(1) 查看核心转储,找出它在哪里中止并回复我们。

    【讨论】:

    • 欢迎来到... 程序名称版本 1.0 程序收到信号 SIGSEGV,分段错误。 [切换到线程 4131518144 (LWP 15705)] 0x0804dc0c in wclose () (gdb) where #0 0x0804dc0c in wclose () #1 0x0804d5a7 in WelcomeSplash () #2 0x0804cf96 in main ()
    • 如何解释 0x0804dc0c 以转换为特定的代码行? (wclose是自定义代码中的函数调用)
    • 在调试打开的情况下重新编译程序,这样符号表仍然存在(查看 gcc 的标志),它会为您提供即将死去的实际函数名称。但乔纳森有。
    【解决方案2】:

    考虑到查理·马丁的回应,您似乎没有打开窗户,然后关闭了一个未打开的窗户,结果很戏剧性。查看 Curses 初始化函数和窗口打开调用的返回码。

    【讨论】:

      【解决方案3】:

      发现是 touchwin 命令导致它失败。删除那行代码似乎没有负面影响。 :-) 谢谢大家的帮助。到处投票。

      【讨论】:

        猜你喜欢
        • 2018-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        • 2020-09-13
        相关资源
        最近更新 更多