diff options
author | Matthew Gardiner <mg11@csr.com> | 2014-09-29 08:02:24 +0000 |
---|---|---|
committer | Matthew Gardiner <mg11@csr.com> | 2014-09-29 08:02:24 +0000 |
commit | f03e6d84bc649ff230b197fb9c2dffaeebd9edef (patch) | |
tree | bc5f86fcf3fa13ed82aaaae36a00d6401be32b6c /lldb/source/Commands/CommandObjectMemory.cpp | |
parent | 1779d438bc389f0cb67ecd3d9fed7d13bca7db39 (diff) | |
download | llvm-f03e6d84bc649ff230b197fb9c2dffaeebd9edef.zip llvm-f03e6d84bc649ff230b197fb9c2dffaeebd9edef.tar.gz llvm-f03e6d84bc649ff230b197fb9c2dffaeebd9edef.tar.bz2 |
Very minimal support 24-bit kalimbas. Vanilla "memory read" for data sections
works, as do breakpoints, run and pause, display zeroth frame.
See
http://reviews.llvm.org/D5503
for a fuller description of the changes in this commit.
llvm-svn: 218596
Diffstat (limited to 'lldb/source/Commands/CommandObjectMemory.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectMemory.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lldb/source/Commands/CommandObjectMemory.cpp b/lldb/source/Commands/CommandObjectMemory.cpp index 486a5eb..6c06ec8 100644 --- a/lldb/source/Commands/CommandObjectMemory.cpp +++ b/lldb/source/Commands/CommandObjectMemory.cpp @@ -614,7 +614,16 @@ protected: } size_t item_count = m_format_options.GetCountValue().GetCurrentValue(); - size_t item_byte_size = m_format_options.GetByteSizeValue().GetCurrentValue(); + + // TODO For non-8-bit byte addressable architectures this needs to be + // revisited to fully support all lldb's range of formatting options. + // Furthermore code memory reads (for those architectures) will not + // be correctly formatted even w/o formatting options. + size_t item_byte_size = + target->GetArchitecture().GetDataByteSize() > 1 ? + target->GetArchitecture().GetDataByteSize() : + m_format_options.GetByteSizeValue().GetCurrentValue(); + const size_t num_per_line = m_memory_options.m_num_per_line.GetCurrentValue(); if (total_byte_size == 0) @@ -661,7 +670,7 @@ protected: total_byte_size = end_addr - addr; item_count = total_byte_size / item_byte_size; } - + uint32_t max_unforced_size = target->GetMaximumMemReadSize(); if (total_byte_size > max_unforced_size && !m_memory_options.m_force) @@ -858,7 +867,8 @@ protected: result.SetStatus(eReturnStatusSuccessFinishResult); DataExtractor data (data_sp, target->GetArchitecture().GetByteOrder(), - target->GetArchitecture().GetAddressByteSize()); + target->GetArchitecture().GetAddressByteSize(), + target->GetArchitecture().GetDataByteSize()); Format format = m_format_options.GetFormat(); if ( ( (format == eFormatChar) || (format == eFormatCharPrintable) ) @@ -892,7 +902,7 @@ protected: format, item_byte_size, item_count, - num_per_line, + num_per_line / target->GetArchitecture().GetDataByteSize(), addr, 0, 0, |