Looking at mcinvokeWS Valgrind runs and ends waiting in vgModuleLocal_do_syscall_for_client_WRK for sys_pollsys. progB is the invoker script which (on a quick reading) will try 60 times and does a poll with a 0 timeout (nonblocking). The Valgrind process is here │ 143 syscall │ 144 │ 145 2: /* In the range [2, 3), the syscall result is in %rax and %rdx and C, │ 146 but hasn't been committed to the thread state. If we get │ 147 interrupted in this section then we'll just use values saved in the │ 148 ucontext structure. │ 149 │ 150 Important note for this and the following section: Don't add here │ 151 any code that alters the carry flag or worse, call any function. │ 152 That would completely break the fixup after an interrupt. */ │ > 153 movq -40(%rbp), %rcx That movq triggers a SIGSEGV. That should be getting the pointer to VexGuestArchState, not something that should be going wrong.
I just tried running "sleep 10000" with Valgrind and vgdb and I had the same problem. This means that hitting ctrl-c in gdb doesn't work. That's a bit of a pain.