代码之家  ›  专栏  ›  技术社区  ›  Phil Kulak

Ruby 1.9 Ramaze应用程序失败,出现“非法指令”

  •  3
  • Phil Kulak  · 技术社区  · 14 年前

    我有一个应用程序,我正在尝试重新开始工作后,擦拭我的系统和安装雪豹。我从macports安装了ruby 1.9(现在是更高版本),dev服务器启动得很好,但在第一次请求时就死掉了,只告诉我“非法指令”。我不知道这是什么原因,甚至不知道如何调试它。有人有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Jörg W Mittag    14 年前

    “非法指令”通常是来自CPU的错误消息,这意味着您试图运行的某段二进制代码包含一条未在该特定CPU上实现的指令。

    这可能有多种原因:

    • 二进制文件是用错误CPU的优化设置编译的。CPU供应商总是添加新的指令,如果编译器为比您的新的CPU进行优化,它可能发出了您的CPU不理解的指令。
    • 编译器坏了。
    • 二进制文件已损坏。
    • 正在编译的代码包含程序集代码或包含CPU没有的指令的内部函数。
        2
  •  1
  •   Phil Kulak    14 年前

    知道了!适当地说,错误是由堆栈溢出引起的。