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

Задание: Выбор одинаковых элементов из двух массивов целых чисел.
В программе 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 строке. Не понимаю что там такого.
Или воспользуйтесь поиском по форуму: