On 6/28/22, Mathieu Malaterre wrote:
% strace ./memcheck/memcheck-arm-linux execve("./memcheck/memcheck-arm-linux", ["./memcheck/memcheck-arm-linux"], 0xbe962730 /* 19 vars */) = 0 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPC, si_addr=0x58072020} --- +++ killed by SIGILL +++ zsh: illegal hardware instruction strace ./memcheck/memcheck-arm-linux
memcheck wants determine the actual hardware capabilities. The description given by AT_PLATFORM, AT_HWCAP, AT_HWCAP2 has not always been complete and correct, so memcheck tries the hardware instructions that matter, and memcheck is prepared to handle SIGILL if it occurs. Thus there are likely to be a few deliberate SIGILL near the beginning. If strace always halts upon SIGILL, without letting memcheck's handler catch the SIGILL and recover from it, then strace is too eager. For instance, on x86_64 strace always aborts on 'int3' regardless of signal handlers. What happens without using 'strace'? _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users