Go to the documentation of this file.
50 m_previous(), m_soentries(), m_added_soentries(), m_removed_soentries() {
187 pos = std::find(entry_list.begin(), entry_list.end(), *I);
188 if (pos == entry_list.end())
212 entry_list.push_back(entry);
250 if (size != 1 ||
error.Fail())
351 : (state ==
eAdd) ?
"add"
352 : (state ==
eDelete) ?
"delete" :
"unknown");
358 log->
PutCString(
"HexagonDYLDRendezvous SOEntries:");
360 for (
int i = 1; I != E; ++I, ++i) {
361 LLDB_LOGF(log,
"\n SOEntry [%d] %s", i, I->path.c_str());
362 LLDB_LOGF(log,
" Base : %" PRIx64, I->base_addr);
363 LLDB_LOGF(log,
" Path : %" PRIx64, I->path_addr);
364 LLDB_LOGF(log,
" Dyn : %" PRIx64, I->dyn_addr);
365 LLDB_LOGF(log,
" Next : %" PRIx64, I->next);
366 LLDB_LOGF(log,
" Prev : %" PRIx64, I->prev);
MATCHES FreeBSD list(APPEND FBSDKERNEL_LIBS kvm) endif() if(NOT FBSDKERNEL_LIBS) message(STATUS "Skipping FreeBSDKernel plugin due to missing libfbsdvmcore") return() endif() add_lldb_library(lldbPluginProcessFreeBSDKernel PLUGIN ProcessFreeBSDKernel.cpp RegisterContextFreeBSDKernel_arm64.cpp RegisterContextFreeBSDKernel_i386.cpp RegisterContextFreeBSDKernel_x86_64.cpp ThreadFreeBSDKernel.cpp LINK_LIBS lldbCore lldbTarget $
lldb::addr_t GetLinkMapAddress() const
SOEntryList::const_iterator iterator
virtual size_t ReadMemory(lldb::addr_t vm_addr, void *buf, size_t size, Status &error)
Read of memory from a process.
bool UpdateSOEntries()
Updates the current set of SOEntries, the set of added entries, and the set of removed entries.
lldb::addr_t GetRendezvousAddress() const
#define LLDB_LOGF(log,...)
Module * GetExecutableModulePointer()
Structure representing the shared objects currently loaded into the inferior process.
lldb::addr_t GetLDBase() const
Target & GetTarget()
Get the target object pointer for this module.
static const size_t word_size
uint64_t GetVersion() const
bool TakeSnapshot(SOEntryList &entry_list)
Reads the current list of shared objects according to the link map supplied by the runtime linker.
const ModuleList & GetImages() const
Get accessor for the images for this process.
std::string path
File name of shared object.
lldb::addr_t GetBreakAddress() const
A breakpoint should be set at this address and Resolve called on each hit.
void FindSymbolsWithNameAndType(ConstString name, lldb::SymbolType symbol_type, SymbolContextList &sc_list) const
lldb_private::Process * m_process
const FileSpec & GetFileSpec() const
Get const accessor for the module file specification.
static llvm::raw_ostream & error(Stream &strm)
lldb::addr_t prev
Address of previous so_entry.
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().
Rendezvous m_current
Current and previous snapshots of the rendezvous structure.
bool Resolve()
Update the internal snapshot of runtime linker rendezvous and recompute the currently loaded modules.
std::string ReadStringFromMemory(lldb::addr_t addr)
Reads a null-terminated C string from the memory location starting at addr.
uint32_t GetAddressByteSize() const
uint64_t GetState() const
Returns the current state of the rendezvous structure.
static addr_t ResolveRendezvousAddress(Process *process)
Locates the address of the rendezvous structure.
bool UpdateSOEntriesForAddition()
bool ReadSOEntryFromMemory(lldb::addr_t addr, SOEntry &entry)
Reads an SOEntry starting at addr.
HexagonDYLDRendezvous(lldb_private::Process *process)
string(SUBSTRING ${p} 10 -1 pStripped) if($
const ThreadInfo & GetThreadInfo()
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 link_addr
Address of this link_map.
iterator begin() const
Iterators over all currently loaded modules.
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::list< SOEntry > SOEntryList
lldb::addr_t GetLoadAddress(Target *target) const
Get the load address.
lldb::addr_t dyn_addr
Dynamic section of shared object.
void DumpToLog(lldb_private::Log *log) const
#define LLDB_INVALID_ADDRESS
lldb::addr_t next
Address of next so_entry.
lldb::addr_t base_addr
Base address of the loaded object.
SOEntryList m_soentries
List of SOEntry objects corresponding to the current link map state.
virtual lldb::addr_t GetImageInfoAddress()
Get the image information address for the current process.
A class that represents a running process on the host machine.
lldb::addr_t m_rendezvous_addr
Location of the r_debug structure in the inferiors address space.
uint64_t ReadUnsignedIntegerFromMemory(lldb::addr_t load_addr, size_t byte_size, uint64_t fail_value, Status &error)
Reads an unsigned integer of the specified byte size from process memory.
lldb::addr_t ReadPointerFromMemory(lldb::addr_t vm_addr, Status &error)
void SetRendezvousAddress(lldb::addr_t)
Provide the dyld structure address.
bool FindMetadata(const char *name, PThreadField field, uint32_t &value)
char m_exe_path[PATH_MAX]
bool UpdateSOEntriesForDeletion()
size_t GetPath(char *path, size_t max_path_length, bool denormalize=true) const
Extract the full path to the file.
lldb::addr_t path_addr
String naming the shared object.
ThreadInfo m_thread_info
Threading metadata read from the inferior.
void PutCString(const char *cstr)