| %feature("docstring", | |
| "A section + offset based address class. | |
| The SBAddress class allows addresses to be relative to a section | |
| that can move during runtime due to images (executables, shared | |
| libraries, bundles, frameworks) being loaded at different | |
| addresses than the addresses found in the object file that | |
| represents them on disk. There are currently two types of addresses | |
| for a section: | |
| * file addresses | |
| * load addresses | |
| File addresses represents the virtual addresses that are in the 'on | |
| disk' object files. These virtual addresses are converted to be | |
| relative to unique sections scoped to the object file so that | |
| when/if the addresses slide when the images are loaded/unloaded | |
| in memory, we can easily track these changes without having to | |
| update every object (compile unit ranges, line tables, function | |
| address ranges, lexical block and inlined subroutine address | |
| ranges, global and static variables) each time an image is loaded or | |
| unloaded. | |
| Load addresses represents the virtual addresses where each section | |
| ends up getting loaded at runtime. Before executing a program, it | |
| is common for all of the load addresses to be unresolved. When a | |
| DynamicLoader plug-in receives notification that shared libraries | |
| have been loaded/unloaded, the load addresses of the main executable | |
| and any images (shared libraries) will be resolved/unresolved. When | |
| this happens, breakpoints that are in one of these sections can be | |
| set/cleared. | |
| See docstring of SBFunction for example usage of SBAddress." | |
| ) lldb::SBAddress; | |
| %feature("docstring", " | |
| Create an address by resolving a load address using the supplied target.") | |
| lldb::SBAddress::SBAddress; | |
| %feature("docstring", " | |
| GetSymbolContext() and the following can lookup symbol information for a given address. | |
| An address might refer to code or data from an existing module, or it | |
| might refer to something on the stack or heap. The following functions | |
| will only return valid values if the address has been resolved to a code | |
| or data address using :py:class:`SBAddress.SetLoadAddress' or | |
| :py:class:`SBTarget.ResolveLoadAddress`.") lldb::SBAddress::GetSymbolContext; | |
| %feature("docstring", " | |
| GetModule() and the following grab individual objects for a given address and | |
| are less efficient if you want more than one symbol related objects. | |
| Use :py:class:`SBAddress.GetSymbolContext` or | |
| :py:class:`SBTarget.ResolveSymbolContextForAddress` when you want multiple | |
| debug symbol related objects for an address. | |
| One or more bits from the SymbolContextItem enumerations can be logically | |
| OR'ed together to more efficiently retrieve multiple symbol objects.") | |
| lldb::SBAddress::GetModule; |