<html><body><p><tt>Pavel Labath <labath@google.com> wrote on 15.04.2016 11:19:35:<br><br>> Thanks a lot for cleaning that up. I hope you'll be able to find the<br>> cause of the 32-bit problems quickly. If you need help reproducing the<br>> errors, I can send you some of the detailed logs from our buildbots.<br></tt><br><tt>I did manage to find the cause of the 32-bit problems now.  The</tt><br><tt>modified Scalar::Promote routine made incorrect decisions on when</tt><br><tt>to zero-extend and when to sign-extend the incoming value.  This</tt><br><tt>needs to be done based on the signedness of the *source* type of</tt><br><tt>the Promote, not the target type, which my patch got wrong.</tt><br><br><tt>This caused LLDB to incorrectly sign-extend 32-bit target pointer</tt><br><tt>values to 64-bit host values, which resulted in ptrace errors when</tt><br><tt>attempting to access target memory at those locations:</tt><br><br><tt><font size="4">AssertionError: False is not True : 'frame variable one' returns expected result, got '(i_am_cool) one = {<br>  integer = <read memory from 0xffffffffffffd4f8 failed (0 of 4 bytes read)><br><br>  floating = <read memory from 0xffffffffffffd4fc failed (0 of 4 bytes read)><br><br>  character = <read memory from 0xffffffffffffd500 failed (0 of 1 bytes read)><br></font></tt><br><tt>I've fixed this now, and those tests no longer fail on my system.</tt><br><tt>I'm planning on recommitted the fixed patch shortly.</tt><br><br><tt>Bye,</tt><br><tt>Ulrich</tt><br><BR>
</body></html>