diff options
author | Greg Clayton <gclayton@apple.com> | 2011-09-24 00:52:29 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-09-24 00:52:29 +0000 |
commit | cac9c5f971eb7fda865982dbb6180d77aa5a45bf (patch) | |
tree | efac05a2f3ad55c656c0c2397c3407e358efc5b1 /lldb/scripts/Python/interface | |
parent | 6027c94d2f7f31917226e0eaa544d22cdf90a713 (diff) | |
download | bcm5719-llvm-cac9c5f971eb7fda865982dbb6180d77aa5a45bf.tar.gz bcm5719-llvm-cac9c5f971eb7fda865982dbb6180d77aa5a45bf.zip |
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.
llvm-svn: 140437
Diffstat (limited to 'lldb/scripts/Python/interface')
-rw-r--r-- | lldb/scripts/Python/interface/SBAddress.i | 4 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBDebugger.i | 7 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBModule.i | 15 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBTarget.i | 25 |
4 files changed, 46 insertions, 5 deletions
diff --git a/lldb/scripts/Python/interface/SBAddress.i b/lldb/scripts/Python/interface/SBAddress.i index f0e2253438c..88cf0c453a6 100644 --- a/lldb/scripts/Python/interface/SBAddress.i +++ b/lldb/scripts/Python/interface/SBAddress.i @@ -79,8 +79,8 @@ public: bool GetDescription (lldb::SBStream &description); - SectionType - GetSectionType (); + lldb::SBSection + GetSection (); %feature("docstring", " //------------------------------------------------------------------ diff --git a/lldb/scripts/Python/interface/SBDebugger.i b/lldb/scripts/Python/interface/SBDebugger.i index 60f4864ee35..184109b5a5a 100644 --- a/lldb/scripts/Python/interface/SBDebugger.i +++ b/lldb/scripts/Python/interface/SBDebugger.i @@ -177,6 +177,13 @@ public: 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/lldb/scripts/Python/interface/SBModule.i b/lldb/scripts/Python/interface/SBModule.i index 6f78dff68df..466fcfad796 100644 --- a/lldb/scripts/Python/interface/SBModule.i +++ b/lldb/scripts/Python/interface/SBModule.i @@ -89,9 +89,11 @@ public: 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 @@ public: lldb::SBSymbol GetSymbolAtIndex (size_t idx); + size_t + GetNumSections (); + + lldb::SBSection + GetSectionAtIndex (size_t idx); + + %feature("docstring", " //------------------------------------------------------------------ /// Find functions by name. diff --git a/lldb/scripts/Python/interface/SBTarget.i b/lldb/scripts/Python/interface/SBTarget.i index aafc80bea39..acd894cb57a 100644 --- a/lldb/scripts/Python/interface/SBTarget.i +++ b/lldb/scripts/Python/interface/SBTarget.i @@ -277,18 +277,43 @@ public: 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. |