Changeset View
Changeset View
Standalone View
Standalone View
lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
Show First 20 Lines • Show All 2,541 Lines • ▼ Show 20 Lines | for (bytes_read = 0; bytes_read < size; bytes_read += remainder) | ||||
ProcessPOSIXLog::DecNestLevel(); | ProcessPOSIXLog::DecNestLevel(); | ||||
return error; | return error; | ||||
} | } | ||||
remainder = size - bytes_read; | remainder = size - bytes_read; | ||||
remainder = remainder > k_ptrace_word_size ? k_ptrace_word_size : remainder; | remainder = remainder > k_ptrace_word_size ? k_ptrace_word_size : remainder; | ||||
// Copy the data into our buffer | // Copy the data into our buffer | ||||
for (unsigned i = 0; i < remainder; ++i) | memcpy(dst, &data, remainder); | ||||
dst[i] = ((data >> i*8) & 0xFF); | |||||
if (log && ProcessPOSIXLog::AtTopNestLevel() && | if (log && ProcessPOSIXLog::AtTopNestLevel() && | ||||
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) || | (log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) || | ||||
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_SHORT) && | (log->GetMask().Test(POSIX_LOG_MEMORY_DATA_SHORT) && | ||||
size <= POSIX_LOG_MEMORY_SHORT_BYTES))) | size <= POSIX_LOG_MEMORY_SHORT_BYTES))) | ||||
{ | { | ||||
uintptr_t print_dst = 0; | uintptr_t print_dst = 0; | ||||
// Format bytes from data by moving into print_dst for log output | // Format bytes from data by moving into print_dst for log output | ||||
Show All 35 Lines | NativeProcessLinux::WriteMemory(lldb::addr_t addr, const void *buf, size_t size, size_t &bytes_written) | ||||
for (bytes_written = 0; bytes_written < size; bytes_written += remainder) | for (bytes_written = 0; bytes_written < size; bytes_written += remainder) | ||||
{ | { | ||||
remainder = size - bytes_written; | remainder = size - bytes_written; | ||||
remainder = remainder > k_ptrace_word_size ? k_ptrace_word_size : remainder; | remainder = remainder > k_ptrace_word_size ? k_ptrace_word_size : remainder; | ||||
if (remainder == k_ptrace_word_size) | if (remainder == k_ptrace_word_size) | ||||
{ | { | ||||
unsigned long data = 0; | unsigned long data = 0; | ||||
for (unsigned i = 0; i < k_ptrace_word_size; ++i) | memcpy(&data, src, k_ptrace_word_size); | ||||
data |= (unsigned long)src[i] << i*8; | |||||
if (log && ProcessPOSIXLog::AtTopNestLevel() && | if (log && ProcessPOSIXLog::AtTopNestLevel() && | ||||
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) || | (log->GetMask().Test(POSIX_LOG_MEMORY_DATA_LONG) || | ||||
(log->GetMask().Test(POSIX_LOG_MEMORY_DATA_SHORT) && | (log->GetMask().Test(POSIX_LOG_MEMORY_DATA_SHORT) && | ||||
size <= POSIX_LOG_MEMORY_SHORT_BYTES))) | size <= POSIX_LOG_MEMORY_SHORT_BYTES))) | ||||
log->Printf ("NativeProcessLinux::%s() [%p]:0x%lx (0x%lx)", __FUNCTION__, | log->Printf ("NativeProcessLinux::%s() [%p]:0x%lx (0x%lx)", __FUNCTION__, | ||||
(void*)addr, *(const unsigned long*)src, data); | (void*)addr, *(const unsigned long*)src, data); | ||||
▲ Show 20 Lines • Show All 579 Lines • Show Last 20 Lines |