Seems like valgrind is missing support for PowerPC: dis_fp_scr(ppc)(instr,mtfsfi) disInstr(ppc): unhandled instruction: 0xFF81010C primary 63(0x3F), secondary 268(0x10C) ==29681== valgrind: Unrecognised instruction at address 0xfead320. ==29681== at 0xFEAD320: __slow_ieee754_sqrt (in /lib/powerpc-linux-gnu/libm-2.22.so) ==29681== by 0xFEA7413: __hypot_finite (in /lib/powerpc-linux-gnu/libm-2.22.so) ==29681== by 0xFEB9187: hypot (in /lib/powerpc-linux-gnu/libm-2.22.so) ==29681== by 0xFEBAEFF: cabs (in /lib/powerpc-linux-gnu/libm-2.22.so) ==29681== by 0x1019BA2B: hill_climbing_update (threadpool-ms.c:1165) ==29681== by 0x1019BA2B: heuristic_adjust (threadpool-ms.c:1296) ==29681== by 0x1019EFE3: ves_icall_System_Threading_ThreadPool_NotifyWorkItemComplete (threadpool-ms.c:1573) ==29681== by 0x46AFC8B: ??? ==29681== by 0x46A465B: ??? ==29681== by 0x46A4233: ??? ==29681== by 0x46A42E7: ??? ==29681== by 0x1002633B: mono_jit_runtime_invoke (mini-runtime.c:2691) ==29681== by 0x101C55E3: do_runtime_invoke (object.c:2898) ==29681== Your program just tried to execute an instruction that Valgrind ==29681== did not recognise. There are two possible reasons for this. ==29681== 1. Your program has a bug and erroneously jumped to a non-code ==29681== location. If you are running Memcheck and you just saw a ==29681== warning about a bad jump, it's probably your program's fault. ==29681== 2. The instruction is legitimate but Valgrind doesn't handle it, ==29681== i.e. it's Valgrind's fault. If you think this is the case or ==29681== you are not sure, please let us know and we'll try to fix it. ==29681== Either way, Valgrind will now raise a SIGILL signal which will ==29681== probably kill your program. ==29681== Thread 7 Threadpool work: ==29681== Invalid write of size 4 ==29681== at 0x100E6658: handle_signal_exception (exceptions-ppc.c:717) ==29681== by 0xFEAD31F: __slow_ieee754_sqrt (in /lib/powerpc-linux-gnu/libm-2.22.so) ==29681== Address 0x813e6b4 is on thread 7's stack ==29681== Reproducible: Always
Mathieu, what processor was this running on? And is this a 32- or 64-bit process?
This is a 32bit process
It would help if you can help identify the unrecognized instruction (with gdb, objdump ...).
I cannot remember what I was doing back then. Closing as fixed.