Сбой приложения Ruby 1.9 Ramaze с "Нелегальной инструкцией"
У меня есть приложение, которое я пытаюсь снова запустить после очистки системы и установки Snow Leopard. Я установил Ruby 1.9 из Macports (теперь более поздней версии), и сервер dev запускается просто отлично, но затем умирает при первом запросе, сообщая мне только "Недопустимая инструкция". Я понятия не имею, что вызывает это или даже как отладить это. У кого-нибудь есть какие-либо идеи?
2 ответа
Решение
Понял! Соответственно, ошибка была вызвана переполнением стека.
"Недопустимая инструкция" - это обычно сообщение об ошибке от процессора, означающее, что некоторый фрагмент двоичного кода, который вы пытались запустить, содержал инструкцию, которая не реализована на этом конкретном процессоре.
Это может иметь несколько причин:
- Двоичный файл был скомпилирован с настройками оптимизации для неправильного процессора. Поставщики ЦП все время добавляют новые инструкции. Если компилятор оптимизирует ЦП, который является более новым, чем тот, который у вас есть, он мог выдать инструкцию, которую ЦП не понимает.
- Компилятор сломан.
- Двоичный файл поврежден.
- Код, который вы компилируете, содержит ассемблерный код или встроенные команды, содержащие инструкции, которых нет у вашего процессора.