214 lines
8.2 KiB
OpenEdge ABL
214 lines
8.2 KiB
OpenEdge ABL
%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;
|