… any signals received that ought to be handled.
Also, execve_loop_32 reveals a bug (maybe a kernel bug?) where a small
fraction of the execve iterations trigger an assert in Monkeypatcher
because we have an oddly different VDSO, e.g.
gdb) p syms
$8 = {symbols = std::vector of length 9, capacity 9 = {{file_offset = 0, name_index = 0}, {file_offset = 0, name_index = 0}, {
file_offset = 2960, name_index = 22}, {file_offset = 2464, name_index = 40}, {file_offset = 21598896, name_index = 22}, {
file_offset = 2944, name_index = 91}, {file_offset = 1760, name_index = 1}, {file_offset = 2928, name_index = 72}, {
File offset 21598896 is totally bogus. In almost all runs the symbol table is the same except
that entry is 0, 0.
I haven't delved into the underlying issue but instead made the code be more
robust by just skipping symbols with invalid offsets.