LINUX.ORG.RU

Valgrind и avx инструкции

 ,


0

2

Доброе время суток.

Столкнулся со станным поведеним Valgrind, очень напоминает https://bugs.kde.org/show_bug.cgi?id=340849

Кто то с подобным сталкивался?

Приложение собирается с -m32

В логе вот такое сообщение:

==10528== 
vex x86->IR: unhandled instruction bytes: 0xC5 0xF8 0x77 0xE8
==10528== valgrind: Unrecognised instruction at address 0x4343836.
==10528==    at 0x4343836: vfprintf (in /lib32/libc-2.22.so)
==10528==    by 0x4348EA7: printf (in /lib32/libc-2.22.so)
==10528==    by 0x804A524: hash_striborg (testFW.c:1249)
Может ли это быть наведённой ошибкой?
sys-libs/glibc: 2.22-r4::gentoo
sys-devel/binutils: 2.25.1-r1::gentoo
sys-devel/gcc: 4.9.3::gentoo

Valgrind пытается при вызове cpuid подобрать под текущий физический процессор дамп. И на сравнительно свежих CPU он говорит софту, что проц поддерживает AVX. А его собственный эмулятор эти команды AVX не поддерживает. Вот и баг.

Открой /VEX/priv/guest_amd64_toIR.c, найди цепочку if'ов, где упоминается «amd64g_dirtyhelper_CPUID_avx2». Убери всю цепочку, оставь только блок внутри последнего else, с «amd64g_dirtyhelper_CPUID_baseline».

У меня баг больше не воспроизводится, так что не могу проверить.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.