aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i')
-rw-r--r--contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i214
1 files changed, 214 insertions, 0 deletions
diff --git a/contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i b/contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i
new file mode 100644
index 000000000000..289cf5335de6
--- /dev/null
+++ b/contrib/llvm-project/lldb/bindings/interface/SBModuleDocstrings.i
@@ -0,0 +1,214 @@
+%feature("docstring",
+"Represents an executable image and its associated object and symbol files.
+
+The module is designed to be able to select a single slice of an
+executable image as it would appear on disk and during program
+execution.
+
+You can retrieve SBModule from :py:class:`SBSymbolContext` , which in turn is available
+from SBFrame.
+
+SBModule supports symbol iteration, for example, ::
+
+ for symbol in module:
+ name = symbol.GetName()
+ saddr = symbol.GetStartAddress()
+ eaddr = symbol.GetEndAddress()
+
+and rich comparison methods which allow the API program to use, ::
+
+ if thisModule == thatModule:
+ print('This module is the same as that module')
+
+to test module equality. A module also contains object file sections, namely
+:py:class:`SBSection` . SBModule supports section iteration through section_iter(), for
+example, ::
+
+ print('Number of sections: %d' % module.GetNumSections())
+ for sec in module.section_iter():
+ print(sec)
+
+And to iterate the symbols within a SBSection, use symbol_in_section_iter(), ::
+
+ # Iterates the text section and prints each symbols within each sub-section.
+ for subsec in text_sec:
+ print(INDENT + repr(subsec))
+ for sym in exe_module.symbol_in_section_iter(subsec):
+ print(INDENT2 + repr(sym))
+ print(INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType()))
+
+produces this following output: ::
+
+ [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text
+ id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870)
+ symbol type: code
+ id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0)
+ symbol type: code
+ id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c)
+ symbol type: code
+ id = {0x00000023}, name = 'start', address = 0x0000000100001780
+ symbol type: code
+ [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs
+ id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62)
+ symbol type: trampoline
+ id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68)
+ symbol type: trampoline
+ id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e)
+ symbol type: trampoline
+ id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74)
+ symbol type: trampoline
+ id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a)
+ symbol type: trampoline
+ id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80)
+ symbol type: trampoline
+ id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86)
+ symbol type: trampoline
+ id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c)
+ symbol type: trampoline
+ id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92)
+ symbol type: trampoline
+ id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98)
+ symbol type: trampoline
+ id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e)
+ symbol type: trampoline
+ id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4)
+ symbol type: trampoline
+ [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper
+ [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring
+ [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info
+ [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame
+"
+) lldb::SBModule;
+
+%feature("docstring", "
+ Check if the module is file backed.
+
+ @return
+
+ True, if the module is backed by an object file on disk.
+ False, if the module is backed by an object file in memory."
+) lldb::SBModule::IsFileBacked;
+
+%feature("docstring", "
+ Get const accessor for the module file specification.
+
+ This function returns the file for the module on the host system
+ that is running LLDB. This can differ from the path on the
+ platform since we might be doing remote debugging.
+
+ @return
+ A const reference to the file specification object."
+) lldb::SBModule::GetFileSpec;
+
+%feature("docstring", "
+ Get accessor for the module platform file specification.
+
+ Platform file refers to the path of the module as it is known on
+ the remote system on which it is being debugged. For local
+ debugging this is always the same as Module::GetFileSpec(). But
+ remote debugging might mention a file '/usr/lib/liba.dylib'
+ which might be locally downloaded and cached. In this case the
+ platform file could be something like:
+ '/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib'
+ The file could also be cached in a local developer kit directory.
+
+ @return
+ A const reference to the file specification object."
+) lldb::SBModule::GetPlatformFileSpec;
+
+%feature("docstring", "Returns the UUID of the module as a Python string."
+) lldb::SBModule::GetUUIDString;
+
+%feature("docstring", "
+ Find compile units related to this module and passed source
+ file.
+
+ @param[in] sb_file_spec
+ A :py:class:`SBFileSpec` object that contains source file
+ specification.
+
+ @return
+ A :py:class:`SBSymbolContextList` that gets filled in with all of
+ the symbol contexts for all the matches."
+) lldb::SBModule::FindCompileUnits;
+
+%feature("docstring", "
+ Find functions by name.
+
+ @param[in] name
+ The name of the function we are looking for.
+
+ @param[in] name_type_mask
+ A logical OR of one or more FunctionNameType enum bits that
+ indicate what kind of names should be used when doing the
+ lookup. Bits include fully qualified names, base names,
+ C++ methods, or ObjC selectors.
+ See FunctionNameType for more details.
+
+ @return
+ A symbol context list that gets filled in with all of the
+ matches."
+) lldb::SBModule::FindFunctions;
+
+%feature("docstring", "
+ Get all types matching type_mask from debug info in this
+ module.
+
+ @param[in] type_mask
+ A bitfield that consists of one or more bits logically OR'ed
+ together from the lldb::TypeClass enumeration. This allows
+ you to request only structure types, or only class, struct
+ and union types. Passing in lldb::eTypeClassAny will return
+ all types found in the debug information for this module.
+
+ @return
+ A list of types in this module that match type_mask"
+) lldb::SBModule::GetTypes;
+
+%feature("docstring", "
+ Find global and static variables by name.
+
+ @param[in] target
+ A valid SBTarget instance representing the debuggee.
+
+ @param[in] name
+ The name of the global or static variable we are looking
+ for.
+
+ @param[in] max_matches
+ Allow the number of matches to be limited to max_matches.
+
+ @return
+ A list of matched variables in an SBValueList."
+) lldb::SBModule::FindGlobalVariables;
+
+%feature("docstring", "
+ Find the first global (or static) variable by name.
+
+ @param[in] target
+ A valid SBTarget instance representing the debuggee.
+
+ @param[in] name
+ The name of the global or static variable we are looking
+ for.
+
+ @return
+ An SBValue that gets filled in with the found variable (if any)."
+) lldb::SBModule::FindFirstGlobalVariable;
+
+%feature("docstring", "
+ Returns the number of modules in the module cache. This is an
+ implementation detail exposed for testing and should not be relied upon.
+
+ @return
+ The number of modules in the module cache."
+) lldb::SBModule::GetNumberAllocatedModules;
+
+%feature("docstring", "
+ Removes all modules which are no longer needed by any part of LLDB from
+ the module cache.
+
+ This is an implementation detail exposed for testing and should not be
+ relied upon. Use SBDebugger::MemoryPressureDetected instead to reduce
+ LLDB's memory consumption during execution.
+") lldb::SBModule::GarbageCollectAllocatedModules;