LLDB mainline
|
Interface to the runtime linker. More...
#include <DYLDRendezvous.h>
Classes | |
struct | Rendezvous |
struct | SOEntry |
Structure representing the shared objects currently loaded into the inferior process. More... | |
struct | ThreadInfo |
Public Types | |
enum | RendezvousState { eConsistent , eAdd , eDelete } |
Constants describing the state of the rendezvous. More... | |
typedef SOEntryList::const_iterator | iterator |
Public Member Functions | |
DYLDRendezvous (lldb_private::Process *process) | |
void | UpdateExecutablePath () |
Update the cached executable path. | |
bool | Resolve () |
Update the internal snapshot of runtime linker rendezvous and recompute the currently loaded modules. | |
bool | IsValid () |
lldb::addr_t | GetRendezvousAddress () const |
uint64_t | GetVersion () const |
lldb::addr_t | GetLinkMapAddress () const |
lldb::addr_t | GetBreakAddress () const |
A breakpoint should be set at this address and Resolve called on each hit. | |
uint64_t | GetState () const |
Returns the current state of the rendezvous structure. | |
lldb::addr_t | GetLDBase () const |
const ThreadInfo & | GetThreadInfo () |
bool | ModulesDidLoad () const |
bool | ModulesDidUnload () const |
void | DumpToLog (lldb_private::Log *log) const |
iterator | begin () const |
Iterators over all currently loaded modules. | |
iterator | end () const |
iterator | loaded_begin () const |
Iterators over all modules loaded into the inferior since the last call to Resolve(). | |
iterator | loaded_end () const |
iterator | unloaded_begin () const |
Iterators over all modules unloaded from the inferior since the last call to Resolve(). | |
iterator | unloaded_end () const |
Protected Types | |
enum | PThreadField { eSize , eNElem , eOffset } |
enum | RendezvousAction { eNoAction , eTakeSnapshot , eAddModules , eRemoveModules } |
typedef std::list< SOEntry > | SOEntryList |
Protected Member Functions | |
lldb::addr_t | ReadWord (lldb::addr_t addr, uint64_t *dst, size_t size) |
Reads an unsigned integer of size bytes from the inferior's address space starting at addr . | |
lldb::addr_t | ReadPointer (lldb::addr_t addr, lldb::addr_t *dst) |
Reads an address from the inferior's address space starting at addr . | |
std::string | ReadStringFromMemory (lldb::addr_t addr) |
Reads a null-terminated C string from the memory location starting at addr . | |
bool | ReadSOEntryFromMemory (lldb::addr_t addr, SOEntry &entry) |
Reads an SOEntry starting at addr . | |
bool | UpdateSOEntries () |
Updates the current set of SOEntries, the set of added entries, and the set of removed entries. | |
bool | UpdateSOEntriesFromRemote () |
Same as UpdateSOEntries but it gets the list of loaded modules from the remote debug server (faster when supported). | |
bool | FillSOEntryFromModuleInfo (LoadedModuleInfoList::LoadedModuleInfo const &modInfo, SOEntry &entry) |
bool | SaveSOEntriesFromRemote (const LoadedModuleInfoList &module_list) |
bool | AddSOEntriesFromRemote (const LoadedModuleInfoList &module_list) |
bool | RemoveSOEntriesFromRemote (const LoadedModuleInfoList &module_list) |
bool | AddSOEntries () |
bool | RemoveSOEntries () |
void | UpdateBaseAddrIfNecessary (SOEntry &entry, std::string const &file_path) |
void | UpdateFileSpecIfNecessary (SOEntry &entry) |
bool | SOEntryIsMainExecutable (const SOEntry &entry) |
bool | TakeSnapshot (SOEntryList &entry_list) |
Reads the current list of shared objects according to the link map supplied by the runtime linker. | |
bool | FindMetadata (const char *name, PThreadField field, uint32_t &value) |
bool | IsCoreFile () const |
RendezvousAction | GetAction () const |
Returns the current action to be taken given the current and previous state. | |
Static Protected Member Functions | |
static const char * | StateToCStr (RendezvousState state) |
static const char * | ActionToCStr (RendezvousAction action) |
Protected Attributes | |
lldb_private::Process * | m_process |
lldb_private::FileSpec | m_exe_file_spec |
lldb::addr_t | m_rendezvous_addr |
Location of the r_debug structure in the inferiors address space. | |
bool | m_executable_interpreter |
Rendezvous | m_current |
Current and previous snapshots of the rendezvous structure. | |
Rendezvous | m_previous |
LoadedModuleInfoList | m_loaded_modules |
List of currently loaded SO modules. | |
SOEntryList | m_soentries |
List of SOEntry objects corresponding to the current link map state. | |
SOEntryList | m_added_soentries |
List of SOEntry's added to the link map since the last call to Resolve(). | |
SOEntryList | m_removed_soentries |
List of SOEntry's removed from the link map since the last call to Resolve(). | |
ThreadInfo | m_thread_info |
Threading metadata read from the inferior. | |
Private Member Functions | |
lldb::addr_t | ResolveRendezvousAddress () |
Locates the address of the rendezvous structure. | |
Interface to the runtime linker.
A structure is present in a processes memory space which is updated by the dynamic linker each time a module is loaded or unloaded. This class provides an interface to this structure and maintains a consistent snapshot of the currently loaded modules.
In the dynamic loader sources, this structure has a type of "r_debug" and the name of the structure us "_r_debug". The structure looks like:
struct r_debug { // Version number for this protocol. int r_version; // Head of the chain of loaded objects. struct link_map *r_map; // The address the debugger should set a breakpoint at in order to get // notified when shared libraries are added or removed uintptr_t r_brk; // This state value describes the mapping change taking place when the // 'r_brk' address is called. enum { RT_CONSISTENT, // Mapping change is complete. RT_ADD, // Beginning to add a new object. RT_DELETE, // Beginning to remove an object mapping. } r_state; // Base address the linker is loaded at. uintptr_t r_ldbase; };
The dynamic linker then defines a global variable using this type named "_r_debug":
r_debug _r_debug;
The DYLDRendezvous class defines a local version of this structure named DYLDRendezvous::Rendezvous. See the definition inside the class definition for DYLDRendezvous.
This structure can be located by looking through the .dynamic section in the main executable and finding the DT_DEBUG tag entry. This value starts out with a value of zero when the program first is initially loaded, but the address of the "_r_debug" structure from ld.so is filled in by the dynamic loader during program initialization code in ld.so prior to loading or unloading and shared libraries.
The dynamic loader will update this structure as shared libraries are loaded and will call a specific function that LLDB knows to set a breakpoint on (from _r_debug.r_brk) so LLDB will find out when shared libraries are loaded or unloaded. Each time this breakpoint is hit, LLDB looks at the contents of this structure and the contents tell LLDB what needs to be done.
Currently we expect the "state" in this structure to change as things happen.
When any shared libraries are loaded the following happens:
When any shared libraries are unloaded the following happens:
Definition at line 107 of file DYLDRendezvous.h.
typedef SOEntryList::const_iterator DYLDRendezvous::iterator |
Definition at line 249 of file DYLDRendezvous.h.
|
protected |
Definition at line 246 of file DYLDRendezvous.h.
|
protected |
Enumerator | |
---|---|
eSize | |
eNElem | |
eOffset |
Definition at line 348 of file DYLDRendezvous.h.
|
protected |
Enumerator | |
---|---|
eNoAction | |
eTakeSnapshot | |
eAddModules | |
eRemoveModules |
Definition at line 354 of file DYLDRendezvous.h.
Constants describing the state of the rendezvous.
These values are defined to match the r_debug.r_state enum from the actual dynamic loader sources.
Enumerator | |
---|---|
eConsistent | |
eAdd | |
eDelete |
Definition at line 208 of file DYLDRendezvous.h.
DYLDRendezvous::DYLDRendezvous | ( | lldb_private::Process * | process | ) |
Definition at line 54 of file DYLDRendezvous.cpp.
References m_thread_info, UpdateExecutablePath(), and DYLDRendezvous::ThreadInfo::valid.
|
staticprotected |
Definition at line 40 of file DYLDRendezvous.cpp.
References eAddModules, eNoAction, eRemoveModules, and eTakeSnapshot.
Referenced by UpdateSOEntries(), and UpdateSOEntriesFromRemote().
|
protected |
Definition at line 498 of file DYLDRendezvous.cpp.
References eAdd, m_added_soentries, m_current, m_previous, m_soentries, DYLDRendezvous::Rendezvous::map_addr, DYLDRendezvous::SOEntry::next, ReadSOEntryFromMemory(), SOEntryIsMainExecutable(), DYLDRendezvous::Rendezvous::state, and UpdateFileSpecIfNecessary().
Referenced by UpdateSOEntries().
|
protected |
Definition at line 435 of file DYLDRendezvous.cpp.
References FillSOEntryFromModuleInfo(), m_added_soentries, lldb_private::LoadedModuleInfoList::m_list, m_loaded_modules, m_soentries, SOEntryIsMainExecutable(), and UpdateFileSpecIfNecessary().
Referenced by UpdateSOEntriesFromRemote().
|
inline |
Iterators over all currently loaded modules.
Definition at line 252 of file DYLDRendezvous.h.
References m_soentries.
Referenced by DumpToLog(), DynamicLoaderPOSIXDYLD::LoadAllCurrentModules(), DynamicLoaderPOSIXDYLD::RefreshModules(), and RemoveSOEntries().
void DYLDRendezvous::DumpToLog | ( | lldb_private::Log * | log | ) | const |
Definition at line 756 of file DYLDRendezvous.cpp.
References begin(), eAdd, eConsistent, eDelete, end(), GetBreakAddress(), GetLDBase(), GetLinkMapAddress(), GetRendezvousAddress(), GetState(), GetVersion(), LLDB_LOGF, and lldb_private::Log::PutCString().
|
inline |
Definition at line 253 of file DYLDRendezvous.h.
References m_soentries.
Referenced by DumpToLog(), DynamicLoaderPOSIXDYLD::LoadAllCurrentModules(), DynamicLoaderPOSIXDYLD::RefreshModules(), and RemoveSOEntries().
|
protected |
Definition at line 390 of file DYLDRendezvous.cpp.
References DYLDRendezvous::SOEntry::base_addr, DYLDRendezvous::SOEntry::dyn_addr, DYLDRendezvous::SOEntry::file_spec, lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_base(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_dynamic(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_link_map(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_name(), DYLDRendezvous::SOEntry::link_addr, DYLDRendezvous::SOEntry::next, DYLDRendezvous::SOEntry::path_addr, DYLDRendezvous::SOEntry::prev, lldb_private::FileSpec::SetFile(), and UpdateBaseAddrIfNecessary().
Referenced by AddSOEntriesFromRemote(), RemoveSOEntriesFromRemote(), and SaveSOEntriesFromRemote().
|
protected |
Definition at line 706 of file DYLDRendezvous.cpp.
References error(), eSize, lldb::eSymbolTypeAny, lldb_private::ModuleList::FindSymbolsWithNameAndType(), lldb_private::Target::GetImages(), lldb_private::Address::GetOffset(), lldb_private::Process::GetTarget(), lldb_private::SymbolContextList::IsEmpty(), m_process, lldb_private::Target::ReadUnsignedIntegerFromMemory(), and lldb_private::Address::SetOffset().
Referenced by GetThreadInfo().
|
protected |
Returns the current action to be taken given the current and previous state.
Definition at line 228 of file DYLDRendezvous.cpp.
References eAdd, eAddModules, eConsistent, eDelete, eNoAction, eRemoveModules, eTakeSnapshot, lldb_private::GetLog(), IsCoreFile(), LLDB_LOG, m_current, m_previous, and DYLDRendezvous::Rendezvous::state.
Referenced by UpdateSOEntries(), and UpdateSOEntriesFromRemote().
|
inline |
A breakpoint should be set at this address and Resolve called on each hit.
Definition at line 180 of file DYLDRendezvous.h.
References DYLDRendezvous::Rendezvous::brk, and m_current.
Referenced by DumpToLog(), and DynamicLoaderPOSIXDYLD::SetRendezvousBreakpoint().
|
inline |
Definition at line 187 of file DYLDRendezvous.h.
References DYLDRendezvous::Rendezvous::ldbase, and m_current.
Referenced by DumpToLog().
|
inline |
Definition at line 171 of file DYLDRendezvous.h.
References m_current, and DYLDRendezvous::Rendezvous::map_addr.
Referenced by DumpToLog(), DynamicLoaderPOSIXDYLD::LoadAllCurrentModules(), and DynamicLoaderPOSIXDYLD::RefreshModules().
|
inline |
Definition at line 164 of file DYLDRendezvous.h.
References m_rendezvous_addr.
Referenced by DumpToLog().
|
inline |
Returns the current state of the rendezvous structure.
Definition at line 183 of file DYLDRendezvous.h.
References m_current, and DYLDRendezvous::Rendezvous::state.
Referenced by DumpToLog().
const DYLDRendezvous::ThreadInfo & DYLDRendezvous::GetThreadInfo | ( | ) |
Definition at line 736 of file DYLDRendezvous.cpp.
References DYLDRendezvous::ThreadInfo::dtv_offset, DYLDRendezvous::ThreadInfo::dtv_slot_size, eOffset, eSize, FindMetadata(), m_thread_info, DYLDRendezvous::ThreadInfo::modid_offset, DYLDRendezvous::ThreadInfo::tls_offset, and DYLDRendezvous::ThreadInfo::valid.
Referenced by DynamicLoaderPOSIXDYLD::GetThreadLocalData().
|
inline |
Definition at line 167 of file DYLDRendezvous.h.
References m_current, and DYLDRendezvous::Rendezvous::version.
Referenced by DumpToLog().
|
protected |
Definition at line 790 of file DYLDRendezvous.cpp.
References lldb_private::Process::IsLiveDebugSession(), and m_process.
Referenced by GetAction().
bool DYLDRendezvous::IsValid | ( | ) |
Definition at line 224 of file DYLDRendezvous.cpp.
References LLDB_INVALID_ADDRESS, and m_rendezvous_addr.
Referenced by DynamicLoaderPOSIXDYLD::SetRendezvousBreakpoint().
|
inline |
Iterators over all modules loaded into the inferior since the last call to Resolve().
Definition at line 257 of file DYLDRendezvous.h.
References m_added_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
inline |
Definition at line 258 of file DYLDRendezvous.h.
References m_added_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
inline |
Definition at line 194 of file DYLDRendezvous.h.
References m_added_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
inline |
Definition at line 198 of file DYLDRendezvous.h.
References m_removed_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
protected |
Reads an address from the inferior's address space starting at addr
.
Definition at line 602 of file DYLDRendezvous.cpp.
References error(), lldb_private::Process::GetAddressByteSize(), m_process, and lldb_private::Process::ReadPointerFromMemory().
Referenced by ReadSOEntryFromMemory(), and Resolve().
|
protected |
Reads an SOEntry starting at addr
.
Definition at line 664 of file DYLDRendezvous.cpp.
References DYLDRendezvous::SOEntry::base_addr, DYLDRendezvous::SOEntry::clear(), DYLDRendezvous::SOEntry::dyn_addr, DYLDRendezvous::SOEntry::file_spec, lldb_private::Target::GetArchitecture(), lldb_private::Process::GetTarget(), lldb_private::ArchSpec::GetTriple(), lldb_private::ArchSpec::IsMIPS(), DYLDRendezvous::SOEntry::link_addr, m_process, DYLDRendezvous::SOEntry::next, DYLDRendezvous::SOEntry::path_addr, DYLDRendezvous::SOEntry::prev, ReadPointer(), ReadStringFromMemory(), lldb_private::FileSpec::SetFile(), and UpdateBaseAddrIfNecessary().
Referenced by AddSOEntries(), and TakeSnapshot().
|
protected |
Reads a null-terminated C string from the memory location starting at addr
.
Definition at line 612 of file DYLDRendezvous.cpp.
References error(), LLDB_INVALID_ADDRESS, m_process, and lldb_private::Process::ReadCStringFromMemory().
Referenced by ReadSOEntryFromMemory().
|
protected |
Reads an unsigned integer of size
bytes from the inferior's address space starting at addr
.
Definition at line 592 of file DYLDRendezvous.cpp.
References error(), m_process, and lldb_private::Process::ReadUnsignedIntegerFromMemory().
Referenced by Resolve().
|
protected |
Definition at line 526 of file DYLDRendezvous.cpp.
References begin(), eDelete, end(), m_previous, m_removed_soentries, m_soentries, DYLDRendezvous::Rendezvous::state, and TakeSnapshot().
Referenced by UpdateSOEntries().
|
protected |
Definition at line 465 of file DYLDRendezvous.cpp.
References FillSOEntryFromModuleInfo(), lldb_private::LoadedModuleInfoList::m_list, m_loaded_modules, m_removed_soentries, m_soentries, and SOEntryIsMainExecutable().
Referenced by UpdateSOEntriesFromRemote().
bool DYLDRendezvous::Resolve | ( | ) |
Update the internal snapshot of runtime linker rendezvous and recompute the currently loaded modules.
This method should be called once one start up, then once each time the runtime linker enters the function given by GetBreakAddress().
Definition at line 165 of file DYLDRendezvous.cpp.
References DYLDRendezvous::Rendezvous::brk, DYLDRendezvous::Rendezvous::DumpToLog(), lldb_private::Process::GetAddressByteSize(), lldb_private::GetLog(), DYLDRendezvous::Rendezvous::ldbase, LLDB_INVALID_ADDRESS, LLDB_LOGF, m_current, m_previous, m_process, m_rendezvous_addr, DYLDRendezvous::Rendezvous::map_addr, ReadPointer(), ReadWord(), ResolveRendezvousAddress(), DYLDRendezvous::Rendezvous::state, UpdateSOEntries(), UpdateSOEntriesFromRemote(), DYLDRendezvous::Rendezvous::version, and word_size.
Referenced by DynamicLoaderPOSIXDYLD::LoadAllCurrentModules(), and DynamicLoaderPOSIXDYLD::RefreshModules().
|
private |
Locates the address of the rendezvous structure.
It updates m_executable_interpreter if address is extracted from _r_debug.
Definition at line 63 of file DYLDRendezvous.cpp.
References error(), lldb_private::Symbol::GetAddress(), lldb_private::Process::GetAddressByteSize(), lldb_private::Target::GetExecutableModule(), lldb_private::Process::GetImageInfoAddress(), lldb_private::ObjectFile::GetImageInfoAddress(), lldb_private::Address::GetLoadAddress(), lldb_private::GetLog(), lldb_private::Process::GetTarget(), lldb_private::Address::IsValid(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_executable_interpreter, m_process, and lldb_private::Process::ReadPointerFromMemory().
Referenced by Resolve().
|
protected |
Definition at line 417 of file DYLDRendezvous.cpp.
References FillSOEntryFromModuleInfo(), lldb_private::LoadedModuleInfoList::m_list, m_loaded_modules, m_soentries, SOEntryIsMainExecutable(), and UpdateFileSpecIfNecessary().
Referenced by UpdateSOEntriesFromRemote().
|
protected |
Definition at line 544 of file DYLDRendezvous.cpp.
References DYLDRendezvous::SOEntry::file_spec, lldb_private::Target::GetArchitecture(), lldb_private::Process::GetTarget(), lldb_private::ArchSpec::GetTriple(), m_exe_file_spec, m_executable_interpreter, and m_process.
Referenced by AddSOEntries(), AddSOEntriesFromRemote(), RemoveSOEntriesFromRemote(), SaveSOEntriesFromRemote(), and TakeSnapshot().
|
staticprotected |
Definition at line 28 of file DYLDRendezvous.cpp.
References eAdd, eConsistent, and eDelete.
Referenced by DYLDRendezvous::Rendezvous::DumpToLog().
|
protected |
Reads the current list of shared objects according to the link map supplied by the runtime linker.
Definition at line 567 of file DYLDRendezvous.cpp.
References DYLDRendezvous::SOEntry::clear(), m_current, DYLDRendezvous::Rendezvous::map_addr, DYLDRendezvous::SOEntry::next, ReadSOEntryFromMemory(), SOEntryIsMainExecutable(), and UpdateFileSpecIfNecessary().
Referenced by RemoveSOEntries(), and UpdateSOEntries().
|
inline |
Iterators over all modules unloaded from the inferior since the last call to Resolve().
Definition at line 262 of file DYLDRendezvous.h.
References m_removed_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
inline |
Definition at line 263 of file DYLDRendezvous.h.
References m_removed_soentries.
Referenced by DynamicLoaderPOSIXDYLD::RefreshModules().
|
protected |
Definition at line 637 of file DYLDRendezvous.cpp.
References DYLDRendezvous::SOEntry::base_addr, error(), DYLDRendezvous::SOEntry::file_spec, lldb_private::Process::GetFileLoadAddress(), lldb_private::Process::GetTarget(), isLoadBiasIncorrect(), LLDB_INVALID_ADDRESS, and m_process.
Referenced by FillSOEntryFromModuleInfo(), and ReadSOEntryFromMemory().
void DYLDRendezvous::UpdateExecutablePath | ( | ) |
Update the cached executable path.
Definition at line 141 of file DYLDRendezvous.cpp.
References lldb_private::Target::GetExecutableModulePointer(), lldb_private::GetLog(), lldb_private::FileSpec::GetPath(), lldb_private::Module::GetPlatformFileSpec(), lldb_private::Process::GetTarget(), LLDB_LOGF, m_exe_file_spec, and m_process.
Referenced by DynamicLoaderPOSIXDYLD::DidAttach(), and DYLDRendezvous().
|
protected |
Definition at line 651 of file DYLDRendezvous.cpp.
References lldb_private::ConstString::AsCString(), DYLDRendezvous::SOEntry::dyn_addr, DYLDRendezvous::SOEntry::file_spec, lldb_private::Process::GetMemoryRegionInfo(), lldb_private::MemoryRegionInfo::GetName(), lldb_private::ConstString::IsEmpty(), m_process, and lldb_private::FileSpec::SetFile().
Referenced by AddSOEntries(), AddSOEntriesFromRemote(), SaveSOEntriesFromRemote(), and TakeSnapshot().
|
protected |
Updates the current set of SOEntries, the set of added entries, and the set of removed entries.
Definition at line 370 of file DYLDRendezvous.cpp.
References ActionToCStr(), AddSOEntries(), eAddModules, eNoAction, eRemoveModules, eTakeSnapshot, GetAction(), lldb_private::GetLog(), LLDB_LOG, m_added_soentries, m_removed_soentries, m_soentries, RemoveSOEntries(), and TakeSnapshot().
Referenced by Resolve().
|
protected |
Same as UpdateSOEntries but it gets the list of loaded modules from the remote debug server (faster when supported).
Definition at line 332 of file DYLDRendezvous.cpp.
References ActionToCStr(), AddSOEntriesFromRemote(), eAddModules, eNoAction, eRemoveModules, eTakeSnapshot, GetAction(), lldb_private::Process::GetLoadedModuleList(), lldb_private::GetLog(), LLDB_LOG, m_added_soentries, lldb_private::LoadedModuleInfoList::m_list, m_loaded_modules, m_process, m_removed_soentries, m_soentries, RemoveSOEntriesFromRemote(), and SaveSOEntriesFromRemote().
Referenced by Resolve().
|
protected |
List of SOEntry's added to the link map since the last call to Resolve().
Definition at line 289 of file DYLDRendezvous.h.
Referenced by AddSOEntries(), AddSOEntriesFromRemote(), loaded_begin(), loaded_end(), ModulesDidLoad(), UpdateSOEntries(), and UpdateSOEntriesFromRemote().
|
protected |
Current and previous snapshots of the rendezvous structure.
Definition at line 278 of file DYLDRendezvous.h.
Referenced by AddSOEntries(), GetAction(), GetBreakAddress(), GetLDBase(), GetLinkMapAddress(), GetState(), GetVersion(), Resolve(), and TakeSnapshot().
|
protected |
Definition at line 269 of file DYLDRendezvous.h.
Referenced by SOEntryIsMainExecutable(), and UpdateExecutablePath().
|
protected |
Definition at line 275 of file DYLDRendezvous.h.
Referenced by ResolveRendezvousAddress(), and SOEntryIsMainExecutable().
|
protected |
List of currently loaded SO modules.
Definition at line 282 of file DYLDRendezvous.h.
Referenced by AddSOEntriesFromRemote(), RemoveSOEntriesFromRemote(), SaveSOEntriesFromRemote(), and UpdateSOEntriesFromRemote().
|
protected |
Definition at line 279 of file DYLDRendezvous.h.
Referenced by AddSOEntries(), GetAction(), RemoveSOEntries(), and Resolve().
|
protected |
Definition at line 266 of file DYLDRendezvous.h.
Referenced by FindMetadata(), IsCoreFile(), ReadPointer(), ReadSOEntryFromMemory(), ReadStringFromMemory(), ReadWord(), Resolve(), ResolveRendezvousAddress(), SOEntryIsMainExecutable(), UpdateBaseAddrIfNecessary(), UpdateExecutablePath(), UpdateFileSpecIfNecessary(), and UpdateSOEntriesFromRemote().
|
protected |
List of SOEntry's removed from the link map since the last call to Resolve().
Definition at line 293 of file DYLDRendezvous.h.
Referenced by ModulesDidUnload(), RemoveSOEntries(), RemoveSOEntriesFromRemote(), unloaded_begin(), unloaded_end(), UpdateSOEntries(), and UpdateSOEntriesFromRemote().
|
protected |
Location of the r_debug structure in the inferiors address space.
Definition at line 272 of file DYLDRendezvous.h.
Referenced by GetRendezvousAddress(), IsValid(), and Resolve().
|
protected |
List of SOEntry objects corresponding to the current link map state.
Definition at line 285 of file DYLDRendezvous.h.
Referenced by AddSOEntries(), AddSOEntriesFromRemote(), begin(), end(), RemoveSOEntries(), RemoveSOEntriesFromRemote(), SaveSOEntriesFromRemote(), UpdateSOEntries(), and UpdateSOEntriesFromRemote().
|
protected |
Threading metadata read from the inferior.
Definition at line 296 of file DYLDRendezvous.h.
Referenced by DYLDRendezvous(), and GetThreadInfo().