Added to the public API to allow symbolication:
- New SBSection objects that are object file sections which can be accessed
  through the SBModule classes. You can get the number of sections, get a 
  section at index, and find a section by name.
- SBSections can contain subsections (first find "__TEXT" on darwin, then
  us the resulting SBSection to find "__text" sub section).
- Set load addresses for a SBSection in the SBTarget interface
- Set the load addresses of all SBSection in a SBModule in the SBTarget interface
- Add a new module the an existing target in the SBTarget interface
- Get a SBSection from a SBAddress object

This should get us a lot closer to being able to symbolicate using LLDB through
the public API.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140437 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/Python/interface/SBAddress.i b/scripts/Python/interface/SBAddress.i
index f0e2253..88cf0c4 100644
--- a/scripts/Python/interface/SBAddress.i
+++ b/scripts/Python/interface/SBAddress.i
@@ -79,8 +79,8 @@
     bool
     GetDescription (lldb::SBStream &description);
 
-    SectionType
-    GetSectionType ();
+    lldb::SBSection
+    GetSection ();
 
     %feature("docstring", "
     //------------------------------------------------------------------
diff --git a/scripts/Python/interface/SBDebugger.i b/scripts/Python/interface/SBDebugger.i
index 60f4864..184109b 100644
--- a/scripts/Python/interface/SBDebugger.i
+++ b/scripts/Python/interface/SBDebugger.i
@@ -177,6 +177,13 @@
                         FILE *err);
 
     lldb::SBTarget
+    CreateTarget (const char *filename,
+                  const char *target_triple,
+                  const char *platform_name,
+                  bool add_dependent_modules,
+                  lldb::SBError& sb_error);
+
+    lldb::SBTarget
     CreateTargetWithFileAndTargetTriple (const char *filename,
                                          const char *target_triple);
 
diff --git a/scripts/Python/interface/SBModule.i b/scripts/Python/interface/SBModule.i
index 6f78dff..466fcfa 100644
--- a/scripts/Python/interface/SBModule.i
+++ b/scripts/Python/interface/SBModule.i
@@ -89,9 +89,11 @@
     const char *
     GetUUIDString () const;
 
-    bool
-    ResolveFileAddress (lldb::addr_t vm_addr, 
-                        lldb::SBAddress& addr);
+    lldb::SBSection
+    FindSection (const char *sect_name);
+
+    lldb::SBAddress
+    ResolveFileAddress (lldb::addr_t vm_addr);
 
     lldb::SBSymbolContext
     ResolveSymbolContextForAddress (const lldb::SBAddress& addr, 
@@ -106,6 +108,13 @@
     lldb::SBSymbol
     GetSymbolAtIndex (size_t idx);
 
+    size_t
+    GetNumSections ();
+
+    lldb::SBSection
+    GetSectionAtIndex (size_t idx);
+
+
     %feature("docstring", "
     //------------------------------------------------------------------
     /// Find functions by name.
diff --git a/scripts/Python/interface/SBTarget.i b/scripts/Python/interface/SBTarget.i
index aafc80b..acd894c 100644
--- a/scripts/Python/interface/SBTarget.i
+++ b/scripts/Python/interface/SBTarget.i
@@ -277,18 +277,43 @@
     lldb::SBFileSpec
     GetExecutable ();
 
+    bool
+    AddModule (lldb::SBModule &module);
+
+    lldb::SBModule
+    AddModule (const char *path,
+               const char *triple,
+               const char *uuid);
+
     uint32_t
     GetNumModules () const;
 
     lldb::SBModule
     GetModuleAtIndex (uint32_t idx);
 
+    bool
+    RemoveModule (lldb::SBModule module);
+
     lldb::SBDebugger
     GetDebugger() const;
 
     lldb::SBModule
     FindModule (const lldb::SBFileSpec &file_spec);
 
+    lldb::SBError
+    SetSectionLoadAddress (lldb::SBSection section,
+                           lldb::addr_t section_base_addr);
+
+    lldb::SBError
+    ClearSectionLoadAddress (lldb::SBSection section);
+
+    lldb::SBError
+    SetModuleLoadAddress (lldb::SBModule module,
+                          int64_t sections_offset);
+
+    lldb::SBError
+    ClearModuleLoadAddress (lldb::SBModule module);
+
     %feature("docstring", "
     //------------------------------------------------------------------
     /// Find functions by name.