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