summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBSection.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-09-24 05:04:40 +0000
committerGreg Clayton <gclayton@apple.com>2011-09-24 05:04:40 +0000
commitd9dc52dc4c081baac2d611f978b9c01f72a625fe (patch)
tree8536e94a31dc32168ff09ae5deb02fab98dbd649 /lldb/source/API/SBSection.cpp
parent57087f3df3151d170680d4e30234c2a1528bff88 (diff)
downloadbcm5719-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.cpp16
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
{
OpenPOWER on IntegriCloud