LLDB mainline
|
#include <SBModule.h>
Public Member Functions | |
SBModule () | |
SBModule (const SBModule &rhs) | |
SBModule (const SBModuleSpec &module_spec) | |
const SBModule & | operator= (const SBModule &rhs) |
SBModule (lldb::SBProcess &process, lldb::addr_t header_addr) | |
~SBModule () | |
operator bool () const | |
bool | IsValid () const |
void | Clear () |
bool | IsFileBacked () const |
lldb::SBFileSpec | GetFileSpec () const |
Get const accessor for the module file specification. | |
lldb::SBFileSpec | GetPlatformFileSpec () const |
Get accessor for the module platform file specification. | |
bool | SetPlatformFileSpec (const lldb::SBFileSpec &platform_file) |
lldb::SBFileSpec | GetRemoteInstallFileSpec () |
Get accessor for the remote install path for a module. | |
bool | SetRemoteInstallFileSpec (lldb::SBFileSpec &file) |
Set accessor for the remote install path for a module. | |
lldb::ByteOrder | GetByteOrder () |
uint32_t | GetAddressByteSize () |
const char * | GetTriple () |
const uint8_t * | GetUUIDBytes () const |
const char * | GetUUIDString () const |
bool | operator== (const lldb::SBModule &rhs) const |
bool | operator!= (const lldb::SBModule &rhs) const |
lldb::SBSection | FindSection (const char *sect_name) |
lldb::SBAddress | ResolveFileAddress (lldb::addr_t vm_addr) |
lldb::SBSymbolContext | ResolveSymbolContextForAddress (const lldb::SBAddress &addr, uint32_t resolve_scope) |
bool | GetDescription (lldb::SBStream &description) |
uint32_t | GetNumCompileUnits () |
lldb::SBCompileUnit | GetCompileUnitAtIndex (uint32_t) |
lldb::SBSymbolContextList | FindCompileUnits (const lldb::SBFileSpec &sb_file_spec) |
Find compile units related to *this module and passed source file. | |
size_t | GetNumSymbols () |
lldb::SBSymbol | GetSymbolAtIndex (size_t idx) |
lldb::SBSymbol | FindSymbol (const char *name, lldb::SymbolType type=eSymbolTypeAny) |
lldb::SBSymbolContextList | FindSymbols (const char *name, lldb::SymbolType type=eSymbolTypeAny) |
size_t | GetNumSections () |
lldb::SBSection | GetSectionAtIndex (size_t idx) |
lldb::SBSymbolContextList | FindFunctions (const char *name, uint32_t name_type_mask=lldb::eFunctionNameTypeAny) |
Find functions by name. | |
lldb::SBValueList | FindGlobalVariables (lldb::SBTarget &target, const char *name, uint32_t max_matches) |
Find global and static variables by name. | |
lldb::SBValue | FindFirstGlobalVariable (lldb::SBTarget &target, const char *name) |
Find the first global (or static) variable by name. | |
lldb::SBType | FindFirstType (const char *name) |
lldb::SBTypeList | FindTypes (const char *type) |
lldb::SBType | GetTypeByID (lldb::user_id_t uid) |
Get a type using its type ID. | |
lldb::SBType | GetBasicType (lldb::BasicType type) |
lldb::SBTypeList | GetTypes (uint32_t type_mask=lldb::eTypeClassAny) |
Get all types matching type_mask from debug info in this module. | |
uint32_t | GetVersion (uint32_t *versions, uint32_t num_versions) |
Get the module version numbers. | |
lldb::SBFileSpec | GetSymbolFileSpec () const |
Get accessor for the symbol file specification. | |
lldb::SBAddress | GetObjectFileHeaderAddress () const |
lldb::SBAddress | GetObjectFileEntryPointAddress () const |
Static Public Member Functions | |
static uint32_t | GetNumberAllocatedModules () |
Get the number of global modules. | |
static void | GarbageCollectAllocatedModules () |
Remove any global modules which are no longer needed. | |
Private Member Functions | |
SBModule (const lldb::ModuleSP &module_sp) | |
ModuleSP | GetSP () const |
void | SetSP (const ModuleSP &module_sp) |
Private Attributes | |
lldb::ModuleSP | m_opaque_sp |
Friends | |
class | SBAddress |
class | SBFrame |
class | SBSection |
class | SBSymbolContext |
class | SBTarget |
class | SBType |
Definition at line 20 of file SBModule.h.
SBModule::SBModule | ( | ) |
Definition at line 32 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA.
SBModule::SBModule | ( | const SBModule & | rhs | ) |
Definition at line 46 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA.
SBModule::SBModule | ( | const SBModuleSpec & | module_spec | ) |
Definition at line 36 of file SBModule.cpp.
References error(), lldb_private::ModuleList::GetSharedModule(), LLDB_INSTRUMENT_VA, lldb::SBModuleSpec::m_opaque_up, and SetSP().
SBModule::SBModule | ( | lldb::SBProcess & | process, |
lldb::addr_t | header_addr | ||
) |
Definition at line 50 of file SBModule.cpp.
References lldb_private::ModuleList::Append(), lldb_private::Target::GetImages(), lldb::SBProcess::GetSP(), LLDB_INSTRUMENT_VA, and m_opaque_sp.
|
default |
References lldb::operator==().
|
explicitprivate |
Definition at line 34 of file SBModule.cpp.
void SBModule::Clear | ( | ) |
Definition at line 85 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA, and m_opaque_sp.
SBSymbolContextList SBModule::FindCompileUnits | ( | const lldb::SBFileSpec & | sb_file_spec | ) |
Find compile units related to *this module and passed source file.
[in] | sb_file_spec | A lldb::SBFileSpec object that contains source file specification. |
Definition at line 275 of file SBModule.cpp.
References GetSP(), lldb::SBFileSpec::IsValid(), and LLDB_INSTRUMENT_VA.
lldb::SBValue SBModule::FindFirstGlobalVariable | ( | lldb::SBTarget & | target, |
const char * | name | ||
) |
Find the first global (or static) variable by name.
[in] | target | A valid SBTarget instance representing the debuggee. |
[in] | name | The name of the global or static variable we are looking for. |
Definition at line 426 of file SBModule.cpp.
References FindGlobalVariables(), lldb::SBValueList::GetSize(), lldb::SBValueList::GetValueAtIndex(), lldb::SBValueList::IsValid(), and LLDB_INSTRUMENT_VA.
lldb::SBType SBModule::FindFirstType | ( | const char * | name | ) |
Definition at line 436 of file SBModule.cpp.
References lldb::eLanguageTypeC, lldb_private::TypeResults::GetFirstType(), GetSP(), lldb_private::ConstString::GetStringRef(), LLDB_INSTRUMENT_VA, and SBType.
lldb::SBSymbolContextList SBModule::FindFunctions | ( | const char * | name, |
uint32_t | name_type_mask = lldb::eFunctionNameTypeAny |
||
) |
Find functions by name.
[in] | name | The name of the function we are looking for. |
[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. |
Definition at line 386 of file SBModule.cpp.
References GetSP(), lldb_private::ModuleFunctionSearchOptions::include_inlines, lldb_private::ModuleFunctionSearchOptions::include_symbols, and LLDB_INSTRUMENT_VA.
SBValueList SBModule::FindGlobalVariables | ( | lldb::SBTarget & | target, |
const char * | name, | ||
uint32_t | max_matches | ||
) |
Find global and static variables by name.
[in] | target | A valid SBTarget instance representing the debuggee. |
[in] | name | The name of the global or static variable we are looking for. |
[in] | max_matches | Allow the number of matches to be limited to max_matches. |
Definition at line 404 of file SBModule.cpp.
References lldb::SBValueList::Append(), lldb_private::ValueObjectVariable::Create(), GetSP(), lldb::SBTarget::GetSP(), and LLDB_INSTRUMENT_VA.
Referenced by FindFirstGlobalVariable().
SBSection SBModule::FindSection | ( | const char * | sect_name | ) |
Definition at line 542 of file SBModule.cpp.
References lldb_private::SectionList::FindSectionByName(), GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBSection::SetSP().
lldb::SBSymbol SBModule::FindSymbol | ( | const char * | name, |
lldb::SymbolType | type = eSymbolTypeAny |
||
) |
Definition at line 312 of file SBModule.cpp.
References lldb_private::Symtab::eDebugAny, lldb_private::Symtab::eVisibilityAny, lldb_private::Symtab::FindFirstSymbolWithNameAndType(), GetSP(), GetUnifiedSymbolTable(), LLDB_INSTRUMENT_VA, and lldb::SBSymbol::SetSymbol().
lldb::SBSymbolContextList SBModule::FindSymbols | ( | const char * | name, |
lldb::SymbolType | type = eSymbolTypeAny |
||
) |
Definition at line 328 of file SBModule.cpp.
References lldb_private::SymbolContextList::Append(), lldb_private::Symtab::FindAllSymbolsWithNameAndType(), GetSP(), GetUnifiedSymbolTable(), LLDB_INSTRUMENT_VA, lldb_private::SymbolContext::module_sp, lldb_private::SymbolContext::symbol, and lldb_private::Symtab::SymbolAtIndex().
lldb::SBTypeList SBModule::FindTypes | ( | const char * | type | ) |
Definition at line 479 of file SBModule.cpp.
References lldb::SBTypeList::Append(), lldb::eLanguageTypeC, lldb_private::TypeMap::Empty(), GetSP(), lldb_private::TypeResults::GetTypeMap(), LLDB_INSTRUMENT_VA, SBType, and lldb_private::TypeMap::Types().
|
static |
Remove any global modules which are no longer needed.
Definition at line 668 of file SBModule.cpp.
References LLDB_INSTRUMENT, and lldb_private::ModuleList::RemoveOrphanSharedModules().
uint32_t SBModule::GetAddressByteSize | ( | ) |
Definition at line 587 of file SBModule.cpp.
References GetSP(), and LLDB_INSTRUMENT_VA.
lldb::SBType SBModule::GetBasicType | ( | lldb::BasicType | type | ) |
Definition at line 462 of file SBModule.cpp.
References lldb::eLanguageTypeC, GetSP(), LLDB_INSTRUMENT_VA, and SBType.
lldb::ByteOrder SBModule::GetByteOrder | ( | ) |
Definition at line 563 of file SBModule.cpp.
References lldb::eByteOrderInvalid, GetSP(), and LLDB_INSTRUMENT_VA.
SBCompileUnit SBModule::GetCompileUnitAtIndex | ( | uint32_t | index | ) |
Definition at line 263 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBCompileUnit::reset().
bool SBModule::GetDescription | ( | lldb::SBStream & | description | ) |
Definition at line 239 of file SBModule.cpp.
References lldb_private::Stream::AsRawOstream(), GetSP(), LLDB_INSTRUMENT_VA, lldb_private::Stream::PutCString(), and lldb::SBStream::ref().
SBFileSpec SBModule::GetFileSpec | ( | ) | const |
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.
Definition at line 105 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBFileSpec::SetFileSpec().
|
static |
Get the number of global modules.
Definition at line 662 of file SBModule.cpp.
References lldb_private::Module::GetNumberAllocatedModules(), and LLDB_INSTRUMENT.
uint32_t SBModule::GetNumCompileUnits | ( | ) |
Definition at line 253 of file SBModule.cpp.
References GetSP(), and LLDB_INSTRUMENT_VA.
size_t SBModule::GetNumSections | ( | ) |
Definition at line 356 of file SBModule.cpp.
References lldb_private::SectionList::GetSize(), GetSP(), and LLDB_INSTRUMENT_VA.
size_t SBModule::GetNumSymbols | ( | ) |
Definition at line 292 of file SBModule.cpp.
References GetSP(), GetUnifiedSymbolTable(), and LLDB_INSTRUMENT_VA.
lldb::SBAddress SBModule::GetObjectFileEntryPointAddress | ( | ) | const |
Definition at line 649 of file SBModule.cpp.
References lldb_private::ObjectFile::GetEntryPointAddress(), GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBAddress::ref().
lldb::SBAddress SBModule::GetObjectFileHeaderAddress | ( | ) | const |
Definition at line 636 of file SBModule.cpp.
References lldb_private::ObjectFile::GetBaseAddress(), GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBAddress::ref().
lldb::SBFileSpec SBModule::GetPlatformFileSpec | ( | ) | const |
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.
Definition at line 116 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBFileSpec::SetFileSpec().
lldb::SBFileSpec SBModule::GetRemoteInstallFileSpec | ( | ) |
Get accessor for the remote install path for a module.
When debugging to a remote platform by connecting to a remote platform, the install path of the module can be set. If the install path is set, every time the process is about to launch the target will install this module on the remote platform prior to launching.
Definition at line 141 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBFileSpec::SetFileSpec().
SBSection SBModule::GetSectionAtIndex | ( | size_t | idx | ) |
Definition at line 370 of file SBModule.cpp.
References lldb_private::SectionList::GetSectionAtIndex(), GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBSection::SetSP().
|
private |
Definition at line 209 of file SBModule.cpp.
References m_opaque_sp.
Referenced by lldb::SBTarget::AddModule(), lldb::SBTarget::ClearModuleLoadAddress(), FindCompileUnits(), FindFirstType(), FindFunctions(), FindGlobalVariables(), FindSection(), FindSymbol(), FindSymbols(), FindTypes(), GetAddressByteSize(), GetBasicType(), GetByteOrder(), GetCompileUnitAtIndex(), GetDescription(), GetFileSpec(), GetNumCompileUnits(), GetNumSections(), GetNumSymbols(), GetObjectFileEntryPointAddress(), GetObjectFileHeaderAddress(), GetPlatformFileSpec(), GetRemoteInstallFileSpec(), GetSectionAtIndex(), GetSymbolAtIndex(), GetSymbolFileSpec(), GetTriple(), GetTypeByID(), GetTypes(), GetUUIDBytes(), GetUUIDString(), GetVersion(), IsFileBacked(), lldb::SBTarget::IsLoaded(), lldb::SBTarget::RemoveModule(), ResolveFileAddress(), ResolveSymbolContextForAddress(), lldb::SBSymbolContext::SetModule(), SetPlatformFileSpec(), and SetRemoteInstallFileSpec().
SBSymbol SBModule::GetSymbolAtIndex | ( | size_t | idx | ) |
Definition at line 301 of file SBModule.cpp.
References GetSP(), GetUnifiedSymbolTable(), LLDB_INSTRUMENT_VA, lldb::SBSymbol::SetSymbol(), and lldb_private::Symtab::SymbolAtIndex().
lldb::SBFileSpec SBModule::GetSymbolFileSpec | ( | ) | const |
Get accessor for the symbol file specification.
When debugging an object file an additional debug information can be provided in separate file. Therefore if you debugging something like '/usr/lib/liba.dylib' then debug information can be located in folder like '/usr/lib/liba.dylib.dSYM/'.
Definition at line 624 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBFileSpec::SetFileSpec().
const char * SBModule::GetTriple | ( | ) |
Definition at line 572 of file SBModule.cpp.
References lldb_private::ConstString::GetCString(), GetSP(), and LLDB_INSTRUMENT_VA.
lldb::SBType SBModule::GetTypeByID | ( | lldb::user_id_t | uid | ) |
Get a type using its type ID.
Each symbol file reader will assign different user IDs to their types, but it is sometimes useful when debugging type issues to be able to grab a type using its type ID.
For DWARF debug info, the type ID is the DIE offset.
[in] | uid | The type user ID. |
Definition at line 509 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and SBType.
lldb::SBTypeList SBModule::GetTypes | ( | uint32_t | type_mask = lldb::eTypeClassAny | ) |
Get all types matching type_mask from debug info in this module.
[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. |
Definition at line 523 of file SBModule.cpp.
References GetSP(), lldb_private::SymbolFile::GetTypes(), LLDB_INSTRUMENT_VA, and lldb::SBTypeList::m_opaque_up.
const uint8_t * SBModule::GetUUIDBytes | ( | ) | const |
Definition at line 162 of file SBModule.cpp.
References GetSP(), and LLDB_INSTRUMENT_VA.
const char * SBModule::GetUUIDString | ( | ) | const |
Definition at line 173 of file SBModule.cpp.
References lldb_private::ConstString::GetCString(), GetSP(), and LLDB_INSTRUMENT_VA.
uint32_t SBModule::GetVersion | ( | uint32_t * | versions, |
uint32_t | num_versions | ||
) |
Get the module version numbers.
Many object files have a set of version numbers that describe the version of the executable or shared library. Typically there are major, minor and build, but there may be more. This function will extract the versions from object files if they are available.
If versions is NULL, or if num_versions is 0, the return value will indicate how many version numbers are available in this object file. Then a subsequent call can be made to this function with a value of versions and num_versions that has enough storage to store some or all version numbers.
[out] | versions | A pointer to an array of uint32_t types that is num_versions long. If this value is NULL, the return value will indicate how many version numbers are required for a subsequent call to this function so that all versions can be retrieved. If the value is non-NULL, then at most num_versions of the existing versions numbers will be filled into versions. If there is no version information available, versions will be filled with num_versions UINT32_MAX values and zero will be returned. |
[in] | num_versions | The maximum number of entries to fill into versions. If this value is zero, then the return value will indicate how many version numbers there are in total so another call to this function can be make with adequate storage in versions to get all of the version numbers. If num_versions is less than the actual number of version numbers in this object file, only num_versions will be filled into versions (if versions is non-NULL). |
Definition at line 596 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and UINT32_MAX.
bool SBModule::IsFileBacked | ( | ) | const |
Definition at line 91 of file SBModule.cpp.
References GetSP(), lldb_private::ObjectFile::IsInMemory(), and LLDB_INSTRUMENT_VA.
bool SBModule::IsValid | ( | ) | const |
Definition at line 75 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA.
Referenced by lldb::SBTarget::AddModule().
|
explicit |
Definition at line 79 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA.
bool SBModule::operator!= | ( | const lldb::SBModule & | rhs | ) | const |
Definition at line 201 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA, and m_opaque_sp.
Definition at line 65 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA, and m_opaque_sp.
bool SBModule::operator== | ( | const lldb::SBModule & | rhs | ) | const |
Definition at line 193 of file SBModule.cpp.
References LLDB_INSTRUMENT_VA, and m_opaque_sp.
SBAddress SBModule::ResolveFileAddress | ( | lldb::addr_t | vm_addr | ) |
Definition at line 213 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBAddress::ref().
SBSymbolContext SBModule::ResolveSymbolContextForAddress | ( | const lldb::SBAddress & | addr, |
uint32_t | resolve_scope | ||
) |
Definition at line 227 of file SBModule.cpp.
References GetSP(), lldb::SBAddress::IsValid(), LLDB_INSTRUMENT_VA, and lldb::SBAddress::ref().
bool SBModule::SetPlatformFileSpec | ( | const lldb::SBFileSpec & | platform_file | ) |
Definition at line 127 of file SBModule.cpp.
References GetSP(), and LLDB_INSTRUMENT_VA.
bool SBModule::SetRemoteInstallFileSpec | ( | lldb::SBFileSpec & | file | ) |
Set accessor for the remote install path for a module.
When debugging to a remote platform by connecting to a remote platform, the install path of the module can be set. If the install path is set, every time the process is about to launch the target will install this module on the remote platform prior to launching.
If file specifies a full path to an install location, the module will be installed to this path. If the path is relative (no directory specified, or the path is partial like "usr/lib" or "./usr/lib", then the install path will be resolved using the platform's current working directory as the base path.
[in] | file | A file specification object. |
Definition at line 151 of file SBModule.cpp.
References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBFileSpec::ref().
|
private |
Definition at line 211 of file SBModule.cpp.
References m_opaque_sp.
Referenced by lldb::SBTarget::AddModule(), lldb::SBTarget::FindModule(), lldb::SBAddress::GetModule(), lldb::SBSymbolContext::GetModule(), lldb::SBType::GetModule(), lldb::SBFrame::GetModule(), lldb::SBTarget::GetModuleAtIndex(), and SBModule().
|
friend |
Definition at line 300 of file SBModule.h.
|
friend |
Definition at line 301 of file SBModule.h.
|
friend |
Definition at line 302 of file SBModule.h.
|
friend |
Definition at line 303 of file SBModule.h.
|
friend |
Definition at line 304 of file SBModule.h.
|
friend |
Definition at line 305 of file SBModule.h.
Referenced by FindFirstType(), FindTypes(), GetBasicType(), and GetTypeByID().
|
private |
Definition at line 313 of file SBModule.h.
Referenced by Clear(), GetSP(), operator!=(), operator=(), operator==(), SBModule(), and SetSP().