Status illegal instruction что за ошибка
Перейти к содержимому

Status illegal instruction что за ошибка

  • автор:

Status illegal instruction что за ошибка

Примечание: используется ТОЛЬКО для жалоб на спам, рекламу и проблемные сообщения (например, нападки, оскорбления или грубости).

© Valve Corporation. Все права защищены. Все торговые марки являются собственностью соответствующих владельцев в США и других странах. Часть географических сведений на этом сайте предоставлена geonames.org.
Политика конфиденциальности | Правовая информация | Соглашение подписчика Steam | Файлы cookie

Отыскать Illegal instruction в коде

Привет. Скомпиленная прога выдает illegal instruction. Но я совсем не могу понять что делать дальше. Вероятно следует отыскать в коде эту инструкцию и что-то делать с этой информацией. Нагуглил следующий способ:

ulimit -c unlimited sudo sysctl -w kernel.core_uses_pid=1 ./program gdb program core.PID 

После чего в gdb записываем

#0 0x000055dfd0b3128b in ?? () (gdb) layout asm 

После чего должна выписаться на экран нужна инструкция. Однако этого, не происходит, зато выскакивает

Cannot access memory at address 0x55dfd0b3128b 

Почему это происходит? Есть ли какой-то способ это обойти и что вообще делать в ситуации с illegal instruction?

Ladas
03.05.18 17:20:51 MSK

Actually often you get an illegal instruction error not because your program contain an illegal opcode but because there is a bug in your program (e.g., a buffer overflow) that makes your program jumps in a random address with plain data or in code but not in the start of the opcode.

anonymous
( 03.05.18 17:28:46 MSK )

Скомпиленная прога выдает illegal instruction. Но я совсем не могу понять что делать дальше.

Очевидно, что компилять прогу с -march=generic. Желательно на всякий случай еще и код показать. Мало ли, что там.

Unicode4all ★★★★★
( 03.05.18 17:29:36 MSK )
Последнее исправление: Unicode4all 03.05.18 17:31:12 MSK (всего исправлений: 1)

Ответ на: комментарий от anonymous 03.05.18 17:28:46 MSK

Спасибо, я как раз оттуда и стянул способ, но не обратил внимание на первый ответ. Unicode4all C

-march=generic

выдает ошибку:

error: generic CPU can be used only for -mtune= switch 

Я скомпил отдельно от майнера файл CryptoNight.cpp со всеми зависимостями, цель просто завести хэш функцию, скормить ей пару последовательностей и проверить хэши. Флаги компилятора

-march=native -maes -02 --std=c++11

Ladas
( 03.05.18 17:51:27 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 17:51:27 MSK

просто убери -march=native -maes

deadNightTiger ★★★★★
( 03.05.18 17:55:43 MSK )
Ответ на: комментарий от Ladas 03.05.18 17:51:27 MSK

Вместо нольдва должно быть одва.

anonymous
( 03.05.18 17:58:19 MSK )

Больше похоже на затирание адреса возврата в стеке адресом, указывающим в кучу.

i-rinat ★★★★★
( 03.05.18 18:00:49 MSK )
Ответ на: комментарий от anonymous 03.05.18 17:58:19 MSK

Ага, неправильно переписал, каюсь.

deadNightTiger Без -maes не компилится, выдает

error: inlining failed in call to always_inline ‘__m128i _mm_aesenc_si128(__m128i, __m128i)’: target specific option mismatch 

-march=native вообще добавил от безысходности, не помогло.

Ladas
( 03.05.18 18:01:13 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:01:13 MSK

Твой проц может банально не поддерживать aes инструкции. Что за проц?

anonymous
( 03.05.18 18:26:28 MSK )

Путем нечеловеческих усилий обнаружил, что illegal hardware instruction выскакивает во время вызова функции. Написал простенькую прогу

#include #include int main()

И действительно, выскакивает та же ошибка. Еще компилятор посоветовал добавить -m32, однако с этим флагом он ругается на отсутствие хэдеров bits/c++config.h, отпишу если получиться решить эту проблему.

Ladas
( 03.05.18 18:30:32 MSK ) автор топика
Ответ на: комментарий от anonymous 03.05.18 18:26:28 MSK

AMD Turion(tm) II Ultra Dual-Core Mobile M600

Ladas
( 03.05.18 18:31:11 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:30:32 MSK

Во время вызова функции _mm_aeskeygenassist_si128 конечно же.

Ladas
( 03.05.18 18:31:45 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:31:11 MSK

Ну да, не поддерживает aes инструкции.

anonymous
( 03.05.18 18:33:24 MSK )
Ответ на: комментарий от anonymous 03.05.18 18:33:24 MSK

Ага, буквально минуту назад сам это обнаружил, но спасибо. Как быть-то?

Ladas
( 03.05.18 18:35:21 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:35:21 MSK
mittorn ★★★★★
( 03.05.18 18:37:27 MSK )
Ответ на: комментарий от mittorn 03.05.18 18:37:27 MSK

Если выделишь денег на покупку + доставку, то думаю я смогу остановиться на таком решении.

Ladas
( 03.05.18 18:39:18 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:39:18 MSK

тогда запили софтовую реализацию данной функции и будет счастье же

Anoxemian ★★★★★
( 03.05.18 18:40:33 MSK )
Ответ на: комментарий от Ladas 03.05.18 18:39:18 MSK

Qemu, наверное. Разумеется эмуляция тормознее, чем просто код без этих инструкций.

anonymous
( 03.05.18 18:41:37 MSK )
Ответ на: комментарий от Anoxemian 03.05.18 18:40:33 MSK

Я собственно надеялся, что такая реализация уже существует, специально для таких как я.

Ladas
( 03.05.18 18:42:37 MSK ) автор топика
Ответ на: комментарий от anonymous 03.05.18 18:41:37 MSK

О, спасибо, попробую. Мне в общем-то скорость не важна, главное результат получить.

Ladas
( 03.05.18 18:43:24 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 18:43:24 MSK

Попробуй xmr-stak-cpu, он должен работать без aes

mittorn ★★★★★
( 03.05.18 19:33:41 MSK )
Ответ на: комментарий от mittorn 03.05.18 19:33:41 MSK

Я до этого ковырял просто хэш функцию и все было хорошо, но проблема в том, что с недавних пор разработчики Monero немного поправили CryptoNight, и оказалось, что алгоритм с которым я игрался является устаревшим. Судя по гитхабу xmr-stak-cpu не обновлялся около полугода, так что он тоже устарел.

Ladas
( 03.05.18 20:43:52 MSK ) автор топика
Ответ на: комментарий от Ladas 03.05.18 20:43:52 MSK

xmr-stak тогда, он обновляется

mittorn ★★★★★
( 03.05.18 20:54:46 MSK )

Поясните пожалуйста мимослоупоку, почему здесь нельзя AES через OpenSSL пользовать (который сам проверит, есть ли в CPU правильные инструкции и прозрачно софтовую реализацию подтянет если нужно)?

Отчего вообще AES инструкции здесь необходимы — терабайты в наносекунду будут шифроваться?

anonymous
( 04.05.18 11:01:08 MSK )
Ответ на: комментарий от anonymous 03.05.18 18:41:37 MSK

Сработало, правда прога все равно потом сегфолтится, но к счастью уже не в функции хэширования, так что хэши получить удалось.

mittorn , лоханулся я конечно порядочно. Честно говоря даже не подумал о том, чтобы поискать другие реализации. Спасибо за наводку, задача уже решена, но все же в будущем покопаюсь все таки в этом xmr-stackе, от греха подальше.

Ladas
( 04.05.18 11:51:29 MSK ) автор топика
Ответ на: комментарий от anonymous 04.05.18 11:01:08 MSK

Поясните пожалуйста мимослоупоку, почему здесь нельзя AES через OpenSSL пользовать

А как это проверить? #include вместо #include не работает, компилятор ругается на отсутсвтие нужных функций/типов.

Отчего вообще AES инструкции здесь необходимы — терабайты в наносекунду будут шифроваться?

Да видимо не очень то они необходимы, если в других реализациях они не используются.

Ladas
( 04.05.18 12:00:13 MSK ) автор топика
Ответ на: комментарий от Ladas 04.05.18 12:00:13 MSK

Ну OpenSSL не самая обскурная библиотека, а AES — не самый обскурный шифр, примеры есть — https://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption

Но я уже сходил по ссылкам и понял, что это про криптовалюты, а у этих товарищей своя атмосфера.

anonymous
( 04.05.18 13:22:58 MSK )
Ответ на: комментарий от anonymous 04.05.18 13:22:58 MSK

Но я уже сходил по ссылкам и понял, что это про криптовалюты, а у этих товарищей своя атмосфера.

Ага, вот кстати ответ на твой вопрос.

Отчего вообще AES инструкции здесь необходимы — терабайты в наносекунду будут шифроваться?

This was a brilliantly designed proof-of-work function targeting the strengths of modern CPUs — native AES encryption and fast 64 bit multipliers — tuned to use a scratchpad exactly the size of the per-core L3 cache on Intel CPUs (about 2MB) that someone then wrapped in such a thick blanket of crap it was nearly unrecognizable until you started jumping in, tearing it apart, and putting it back together again.

Ladas
( 04.05.18 13:48:23 MSK ) автор топика
Ответ на: комментарий от Ladas 04.05.18 12:00:13 MSK

Они необходимы чтобы майнинг был хоть сколько-то прибыльным. Другие реализации тоже их используют, но просто в некоторых реализациях есть фоллбек на случай их отсутствия

mittorn ★★★★★
( 04.05.18 14:59:10 MSK )
Ответ на: комментарий от mittorn 04.05.18 14:59:10 MSK

Уже понял, разобравшись в алгоритме CryptoNight.

Форумы Zyxmon`а

Illegal instruction на х86 сборке и х86 проце

dals2050 Сообщения: 7 Зарегистрирован: 23 окт 2019, 15:24

Сообщение dals2050 » 23 окт 2019, 16:06

Здравствуйте!
Устанавливаю х86 сборки entware и qnapware на Android_x86 (РС-версия).

shell@eeepc:/ $ uname -a Linux localhost 3.0.36-android-x86-eeepc+ #1 SMP PREEMPT Fri Jul 13 19:55:18 CST 2012 i686 GNU/Linux shell@eeepc:/Apps/opt/bin $ ./opkg print-architecture arch all 1 arch noarch 1 arch qnapx86 10 shell@eeepc:/Apps/opt/bin $ ./opkg info nano Package: nano Version: 2.4.2-1 Depends: libc, libncursesw Status: install user installed Section: utils Architecture: qnapx86 Maintainer: Jonathan Bennett MD5Sum: 64d1e846a4c4e2589656ac3f9b9740f6 Size: 35565 Filename: nano_2.4.2-1_qnapx86.ipk Source: feeds/packages/utils/nano shell@eeepc:/Apps/opt/bin $ ./nano Illegal instruction 

Результат идентичный — opkg работает нормально, но при попытке запуска пакетов mc, nano (другие пока не интересуют), вылетает ошибка «Illegal instruction».
Подозреваю, что дело в процессоре (может, отсутствии в нём SSE2?)

shell@eeepc:/ $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Celeron(R) M processor 900MHz stepping : 8 cpu MHz : 900.031 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up bts bogomips : 1800.06 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management:

Ошибка: Illegal instruction

Author24 — интернет-сервис помощи студентам

Задание: Выбор одинаковых элементов из двух массивов целых чисел.
В программе FASM.

Вот есть код, но выдает ошибку:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
cld mov esi, ARR_1 ;адрес первого массива mov ecx, LEN_1 ;длина первого массива xor ebx, ebx L1: lodsd mov edi, ARR_2 ;адрес второго массива mov edx, ecx mov ecx, LEN_2 ;длина второго массива repne scasd jne L2 push eax inc ebx L2: mov ecx, edx loop L1

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Ошибка Illegal Instruction
Программа находит ошибки Illegal instruction и прочее! Помогите с решением текст .asm вставлена.

Ошибка: «the ntvdm cpu has encountered an illegal instruction»
помогите сделать скриншоты. для кода. сделала только скрин начало и компилирование..а ход и конец.

Сравнение чисел: ошибка «ntvdm cpu has encountered an illegal instruction»
Написал такую программу .model tiny .code org 100h start: X db 5 Y db 7 a db ‘5 > 7$’

Illegal instruction: datas db’string’ or wrong parameters
Как исправить эти ошибки? (3) illegal instruction: datas db’string’ or wrong parameters. (16).

2036 / 985 / 169
Регистрация: 23.07.2018
Сообщений: 3,256
Записей в блоге: 3

4tonada, Вы не весь код вставили в сообщение.
Вам нужна 64-разрядное консольное приложение для Windows?

Эксперт по электронике

8434 / 4303 / 1632
Регистрация: 01.02.2015
Сообщений: 13,352
Записей в блоге: 5

4tonada, уже обращал ваше внимание, что достаточно привести исходник и текст диагностического сообщения.
Причина — с телефона картинки плохо видно.

Скрины не запрещено добавлять, но крайне недальновидно.

Регистрация: 11.12.2018
Сообщений: 40

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
format PE console entry start section '.text' code executable start: cld mov esi, 8 ;адрес первого массива mov ecx, 16 ;длина первого массива xor ebx, ebx L1: lodsd mov edi, 8 ;адрес второго массива mov edx, ecx mov ecx, 12 ;длина второго массива repne scasd jne L2 push eax inc ebx L2: mov ecx, edx loop L1

Вот смог скомпилировать код, но в дэбаге ошибку выдает, мб так и нужно?
6762 / 2734 / 382
Регистрация: 17.02.2013
Сообщений: 4,042

ЦитатаСообщение от 4tonada Посмотреть сообщение

mov esi, 8 ;адрес первого массива

С адреса 8 нельзя читать в программе для Windows. Это адрес из области адресов, которые отданы операционной системе и попытка прочитать из них приведет к ошибке защиты.
Из чего ты заключил, что у тебя массив по адресу 8 ?

Добавлено через 10 минут
Делай что нибудь такое: создай массив в своей программе и с его адресом работай

1 2 3 4 5 6 7 8 9
format PE console entry start section '.text' code executable ARR_1 dd 1,2,3,4,5,2,3,6,7,8,9,0,0,2,2,2 ;первый массив 16 элементов start: cld mov esi, ARR_1 ;адрес первого массива mov ecx, 16 ;длина первого массива . 

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Нужно найти причину ошибки (illegal instruction)
Совсем новичек в данной теме.(23 минуты опыта). Набрал текст программы из книги пытался.

Ошибка: invalid instruction operands
Здравствуйте! Не могу устранить ошибку : error A2070: invalid instruction operands Подскажите.

Ошибка A2070: invalid instruction operands
Ребят, помогите пж — не могу понять в чём дело. Выдаёт ошибку А2070. .386 .model flat, stdcall.

Ошибка при запуске примера — parser: instruction expected
Скачал редактор SAMS .Запустил пример выдало ошибку Внимание! В ходе построения обнаружены.

Ошибка индексации (Illegal indexing mode)
mov arr, ax Illegal indexing mode. Помогите исправить

Ошибка «invalid instruction operands»
Всем привет! Небольшая проблема. Выбивает ошибку в 21 строке. Не понимаю что там такого.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *