LLDB mainline
|
#include <ObjectContainerMachOFileset.h>
Classes | |
struct | Entry |
Public Member Functions | |
ObjectContainerMachOFileset (const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, lldb::offset_t data_offset, const lldb_private::FileSpec *file, lldb::offset_t offset, lldb::offset_t length) | |
ObjectContainerMachOFileset (const lldb::ModuleSP &module_sp, lldb::WritableDataBufferSP data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t header_addr) | |
~ObjectContainerMachOFileset () override | |
bool | ParseHeader () override |
Attempts to parse the object header. | |
size_t | GetNumObjects () const override |
Get the number of objects within this object file (archives). | |
lldb::ObjectFileSP | GetObjectFile (const lldb_private::FileSpec *file) override |
Selects an architecture in an object file. | |
llvm::StringRef | GetPluginName () override |
Entry * | FindEntry (llvm::StringRef id) |
Public Member Functions inherited from lldb_private::ObjectContainer | |
ObjectContainer (const lldb::ModuleSP &module_sp, const FileSpec *file, lldb::offset_t file_offset, lldb::offset_t length, lldb::DataBufferSP data_sp, lldb::offset_t data_offset) | |
Construct with a parent module, offset, and header data. | |
~ObjectContainer () override=default | |
Destructor. | |
virtual bool | GetArchitectureAtIndex (uint32_t idx, ArchSpec &arch) const |
Gets the architecture given an index. | |
virtual lldb::addr_t | GetOffset () const |
Returns the offset into a file at which this object resides. | |
virtual lldb::addr_t | GetByteSize () const |
virtual size_t | GetNumObjects () const |
Get the number of objects within this object file (archives). | |
virtual size_t | GetNumArchitectures () const |
Get the number of architectures in this object file. | |
virtual bool | ParseHeader ()=0 |
Attempts to parse the object header. | |
virtual lldb::ObjectFileSP | GetObjectFile (const FileSpec *file)=0 |
Selects an architecture in an object file. | |
Public Member Functions inherited from lldb_private::PluginInterface | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Public Member Functions inherited from lldb_private::ModuleChild | |
ModuleChild (const lldb::ModuleSP &module_sp) | |
Construct with owning module. | |
~ModuleChild () | |
Destructor. | |
const ModuleChild & | operator= (const ModuleChild &rhs) |
Assignment operator. | |
lldb::ModuleSP | GetModule () const |
Get const accessor for the module pointer. | |
void | SetModule (const lldb::ModuleSP &module_sp) |
Set accessor for the module pointer. | |
Static Private Member Functions | |
static bool | ParseHeader (lldb_private::DataExtractor &data, const lldb_private::FileSpec &file, lldb::offset_t file_offset, std::vector< Entry > &entries) |
Private Attributes | |
std::vector< Entry > | m_entries |
lldb::ProcessWP | m_process_wp |
const lldb::addr_t | m_memory_addr |
Additional Inherited Members | |
Protected Attributes inherited from lldb_private::ObjectContainer | |
FileSpec | m_file |
The file that represents this container objects (which can be different from the module's file). | |
lldb::addr_t | m_offset |
The offset in bytes into the file, or the address in memory. | |
lldb::addr_t | m_length |
The size in bytes if known (can be zero). | |
DataExtractor | m_data |
The data for this object file so things can be parsed lazily. | |
Protected Attributes inherited from lldb_private::ModuleChild | |
lldb::ModuleWP | m_module_wp |
The Module that owns the object that inherits from this class. | |
Definition at line 18 of file ObjectContainerMachOFileset.h.
ObjectContainerMachOFileset::ObjectContainerMachOFileset | ( | const lldb::ModuleSP & | module_sp, |
lldb::DataBufferSP & | data_sp, | ||
lldb::offset_t | data_offset, | ||
const lldb_private::FileSpec * | file, | ||
lldb::offset_t | offset, | ||
lldb::offset_t | length | ||
) |
Definition at line 36 of file ObjectContainerMachOFileset.cpp.
ObjectContainerMachOFileset::ObjectContainerMachOFileset | ( | const lldb::ModuleSP & | module_sp, |
lldb::WritableDataBufferSP | data_sp, | ||
const lldb::ProcessSP & | process_sp, | ||
lldb::addr_t | header_addr | ||
) |
Definition at line 43 of file ObjectContainerMachOFileset.cpp.
|
overridedefault |
|
static |
Definition at line 50 of file ObjectContainerMachOFileset.cpp.
References MagicBytesMatch(), and lldb_private::DataExtractor::SetData().
Referenced by Terminate().
|
static |
Definition at line 70 of file ObjectContainerMachOFileset.cpp.
References MagicBytesMatch().
ObjectContainerMachOFileset::Entry * ObjectContainerMachOFileset::FindEntry | ( | llvm::StringRef | id | ) |
Definition at line 293 of file ObjectContainerMachOFileset.cpp.
References m_entries.
Referenced by GetObjectFile().
|
static |
Definition at line 220 of file ObjectContainerMachOFileset.cpp.
References lldb_private::ObjectFile::GetModuleSpecifications(), lldb_private::ModuleSpecList::GetModuleSpecRefAtIndex(), lldb_private::ModuleSpec::GetObjectName(), lldb_private::ModuleSpecList::GetSize(), MagicBytesMatch(), ParseHeader(), and lldb_private::DataExtractor::SetData().
|
inlineoverridevirtual |
Get the number of objects within this object file (archives).
Reimplemented from lldb_private::ObjectContainer.
Definition at line 65 of file ObjectContainerMachOFileset.h.
References m_entries.
|
overridevirtual |
Selects an architecture in an object file.
Object files that contain a single architecture should verify that the specified arch matches the architecture in the object file and return true or false accordingly.
Object files that contain more than one architecture should attempt to select that architecture, and if successful, clear out any previous state from any previously selected architecture and prepare to return information for the new architecture.
Implements lldb_private::ObjectContainer.
Definition at line 272 of file ObjectContainerMachOFileset.cpp.
References lldb_private::ObjectContainerMachOFileset::Entry::fileoff, FindEntry(), lldb_private::ObjectFile::FindPlugin(), lldb_private::DataExtractor::GetByteSize(), lldb_private::ConstString::GetCString(), lldb_private::ModuleChild::GetModule(), lldb_private::ObjectContainer::m_data, and lldb_private::ObjectContainer::m_offset.
|
inlinestatic |
Definition at line 38 of file ObjectContainerMachOFileset.h.
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 69 of file ObjectContainerMachOFileset.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 36 of file ObjectContainerMachOFileset.h.
Referenced by GetPluginName().
|
static |
Definition at line 26 of file ObjectContainerMachOFileset.cpp.
References lldb_private::PluginManager::RegisterPlugin().
|
static |
Definition at line 253 of file ObjectContainerMachOFileset.cpp.
References lldb_private::DataExtractor::GetU32().
Referenced by CreateInstance(), CreateMemoryInstance(), GetModuleSpecifications(), and MagicBytesMatch().
|
static |
Definition at line 245 of file ObjectContainerMachOFileset.cpp.
References MagicBytesMatch(), and lldb_private::DataExtractor::SetData().
|
overridevirtual |
Attempts to parse the object header.
This function is used as a test to see if a given plug-in instance can parse the header data already contained in ObjectContainer::m_data. If an object file parser does not recognize that magic bytes in a header, false should be returned and the next plug-in can attempt to parse an object file.
Implements lldb_private::ObjectContainer.
Definition at line 193 of file ObjectContainerMachOFileset.cpp.
References lldb_private::DataExtractor::GetByteSize(), lldb_private::ModuleChild::GetModule(), lldb_private::ObjectContainer::m_data, m_entries, lldb_private::ObjectContainer::m_file, m_memory_addr, lldb_private::ObjectContainer::m_offset, m_process_wp, MachHeaderSizeFromMagic(), lldb_private::ObjectFile::MapFileData(), ParseFileset(), ParseMachOHeader(), lldb_private::ObjectFile::ReadMemory(), and lldb_private::DataExtractor::SetData().
Referenced by GetModuleSpecifications().
|
staticprivate |
Definition at line 173 of file ObjectContainerMachOFileset.cpp.
References lldb_private::DataExtractor::GetByteSize(), MachHeaderSizeFromMagic(), lldb_private::ObjectFile::MapFileData(), ParseFileset(), ParseMachOHeader(), and lldb_private::DataExtractor::SetData().
|
static |
Definition at line 32 of file ObjectContainerMachOFileset.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
private |
Definition at line 87 of file ObjectContainerMachOFileset.h.
Referenced by FindEntry(), GetNumObjects(), and ParseHeader().
|
private |
Definition at line 89 of file ObjectContainerMachOFileset.h.
Referenced by ParseHeader().
|
private |
Definition at line 88 of file ObjectContainerMachOFileset.h.
Referenced by ParseHeader().