nitesh.jain added inline comments. ================ Comment at: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1844 @@ +1843,3 @@ + + uint64_t value; + value = reg_size == 4 ? *(uint32_t *)reg_bytes : *(uint64_t *)reg_bytes; ---------------- labath wrote: > This looks like a massive hack. The register value object already takes a > byte order as a parameter, so the fact that you are doing some funny endian > conversions here means that there is something wrong. Also, this probably > will not work for registers whose sizes are not 4 or 8 (%ah, %ax, all SSE > registers, etc.). > > I think we'll need to find a different way to fix this. The problem is with RegisterValue.SetBytes
RegisterValue (uint8_t *bytes, size_t length, lldb::ByteOrder byte_order) { SetBytes (bytes, length, byte_order); } The RegisterValue.SetBytes use memcpy to perform copy . So for register whose size is 4 it will be copy to lower 32bit LSB and hence RegisterValue.GetAsUInt64 will give incorrect result for 32 bit big endian system. https://reviews.llvm.org/D24124 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits