9#ifndef LLDB_SYMBOL_OBJECTCONTAINER_H
10#define LLDB_SYMBOL_OBJECTCONTAINER_H
An architecture specification class.
A mix in class that contains a pointer back to the module that owns the object which inherits from it...
A plug-in interface definition class for object containers.
virtual size_t GetNumArchitectures() const
Get the number of architectures in this object file.
virtual lldb::addr_t GetByteSize() const
DataExtractor m_data
The data for this object file so things can be parsed lazily.
virtual size_t GetNumObjects() const
Get the number of objects within this object file (archives).
static lldb::ObjectContainerSP FindPlugin(const lldb::ModuleSP &module_sp, const lldb::ProcessSP &process_sp, lldb::addr_t header_addr, lldb::WritableDataBufferSP file_data_sp)
ObjectContainer(const ObjectContainer &)=delete
const ObjectContainer & operator=(const ObjectContainer &)=delete
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.
~ObjectContainer() override=default
Destructor.
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.
virtual bool GetArchitectureAtIndex(uint32_t idx, ArchSpec &arch) const
Gets the architecture given an index.
lldb::addr_t m_length
The size in bytes if known (can be zero).
virtual lldb::addr_t GetOffset() const
Returns the offset into a file at which this object resides.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ObjectContainer > ObjectContainerSP
std::shared_ptr< lldb_private::ObjectFile > ObjectFileSP
std::shared_ptr< lldb_private::Process > ProcessSP
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP
std::shared_ptr< lldb_private::Module > ModuleSP