[Lldb-commits] [PATCH] D15738: [LLDB] Fix Read/Write memory to be compatible with both endians
Mohit Bhakkad via lldb-commits
lldb-commits at lists.llvm.org
Tue Dec 22 22:37:39 PST 2015
mohit.bhakkad created this revision.
mohit.bhakkad added a reviewer: clayborg.
mohit.bhakkad added subscribers: jaydeep, bhushan, sagar, nitesh.jain, lldb-commits.
mohit.bhakkad set the repository for this revision to rL LLVM.
While copying a byte, copy a whole byte chunk instead of each bit, to make it compatible with both endians.
Repository:
rL LLVM
http://reviews.llvm.org/D15738
Files:
source/Plugins/Process/Linux/NativeProcessLinux.cpp
Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp
===================================================================
--- source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -2547,9 +2547,7 @@
remainder = remainder > k_ptrace_word_size ? k_ptrace_word_size : remainder;
// Copy the data into our buffer
- for (unsigned i = 0; i < remainder; ++i)
- dst[i] = ((data >> i*8) & 0xFF);
-
+ *((long*)(dst)) = data;
if (log && ProcessPOSIXLog::AtTopNestLevel() &&
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) ||
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_SHORT) &&
@@ -2600,8 +2598,7 @@
if (remainder == k_ptrace_word_size)
{
unsigned long data = 0;
- for (unsigned i = 0; i < k_ptrace_word_size; ++i)
- data |= (unsigned long)src[i] << i*8;
+ data = *((unsigned long*)src);
if (log && ProcessPOSIXLog::AtTopNestLevel() &&
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) ||
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15738.43505.patch
Type: text/x-patch
Size: 1140 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151223/689859e6/attachment.bin>
More information about the lldb-commits
mailing list