diff options
author | Greg Clayton <gclayton@apple.com> | 2011-09-24 05:04:40 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-09-24 05:04:40 +0000 |
commit | d9dc52dc4c081baac2d611f978b9c01f72a625fe (patch) | |
tree | 8536e94a31dc32168ff09ae5deb02fab98dbd649 /lldb/source/API/SBSection.cpp | |
parent | 57087f3df3151d170680d4e30234c2a1528bff88 (diff) | |
download | bcm5719-llvm-d9dc52dc4c081baac2d611f978b9c01f72a625fe.tar.gz bcm5719-llvm-d9dc52dc4c081baac2d611f978b9c01f72a625fe.zip |
Added the ability to get all section contents, or the section
contents starting at an offset (2 separate methods). This helps
the scripting interface stay more natural by allowing both from
Python.
Added the ability to dump data with address annotations when
call SBData::GetDescription().
Hooked up the SBSection to the __repr__ so you can print section
objects from within python.
Improved the dumping of symbols from python.
Fixed the .i interface references which were set to "Relative to this Group"
which somehow included Jim's "lldb-clean" root directory in the path. The
interfaces are now in a folder called "interfaces" withing the Xcode API
subfolder.
llvm-svn: 140451
Diffstat (limited to 'lldb/source/API/SBSection.cpp')
-rw-r--r-- | lldb/source/API/SBSection.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lldb/source/API/SBSection.cpp b/lldb/source/API/SBSection.cpp index 2636dd02136..3a6efb4d5f1 100644 --- a/lldb/source/API/SBSection.cpp +++ b/lldb/source/API/SBSection.cpp @@ -12,8 +12,9 @@ #include "lldb/Core/DataBuffer.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Log.h" -#include "lldb/Core/Section.h" #include "lldb/Core/Module.h" +#include "lldb/Core/Section.h" +#include "lldb/Core/StreamString.h" namespace lldb_private { @@ -238,6 +239,12 @@ SBSection::GetFileByteSize () } SBData +SBSection::GetSectionData () +{ + return GetSectionData (0, UINT64_MAX); +} + +SBData SBSection::GetSectionData (uint64_t offset, uint64_t size) { SBData sb_data; @@ -319,9 +326,12 @@ SBSection::operator != (const SBSection &rhs) bool SBSection::GetDescription (SBStream &description) { - if (m_opaque_ap.get()) + if (IsValid()) { - description.Printf ("SBSection"); + const Section *section = m_opaque_ap->GetSection(); + const addr_t file_addr = section->GetFileAddress(); + description.Printf ("[0x%16.16llx-0x%16.16llx) ", file_addr, file_addr + section->GetByteSize()); + section->DumpName(description.get()); } else { |