https://bugs.kde.org/show_bug.cgi?id=417281

--- Comment #1 from Andreas Arnez <ar...@linux.ibm.com> ---
The crash happens in glibc's elf/dl-lookup.c in do_lookup_x, when trying
to access the first element of the array 'list'.  It seems that the
register containing the address is corrupted; it was just copied from
%r4 into %r6, but the values differ.

Some observations:
• When using `--vex-guest-max-insns=40' or lower, the problem
  disappears.
• The option `--vex-iropt-register-updates=allregs-at-each-insn' does
  not help.
• When attaching GDB, it seems that the corruption happens on the `lgr'
  instruction that is supposed to copy the value from %r4.  Instead of
  copying, %r6 is overwritten with some random (?) value:
  ┌────
  │ 1: x/i $pc
  │ => 0x4009e36 <do_lookup_x+182>: lgr %r6,%r4
  │ 2: /x $r4 = 0x4829f90
  │ 3: /x $r6 = 0x1fff000260
  │ (gdb) si
  │ 1: x/i $pc
  │ => 0x4009e3a <do_lookup_x+186>: cgije   %r2,0,0x4009f34 <do_lookup_x+436>
  │ 2: /x $r4 = 0x4829f90
  │ 3: /x $r6 = 0x10
  └────
• The `lgr' instruction is affected by grail's transformation.  After
  the transformation, the register move is performed conditionally.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to