[Lldb-commits] [PATCH] D18978: Support Linux on SystemZ as platform
Ulrich Weigand via lldb-commits
lldb-commits at lists.llvm.org
Fri Apr 15 02:48:04 PDT 2016
Pavel Labath <labath at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160415/8184dde9/attachment.html>
More information about the lldb-commits
mailing list