Go to the documentation of this file.
9 #ifndef LLDB_SOURCE_PLUGINS_OBJECTFILE_PDB_OBJECTFILEPDB_H
10 #define LLDB_SOURCE_PLUGINS_OBJECTFILE_PDB_OBJECTFILEPDB_H
14 #include "llvm/DebugInfo/PDB/Native/NativeSession.h"
15 #include "llvm/DebugInfo/PDB/PDBTypes.h"
27 return "PDB object file reader.";
30 static std::unique_ptr<llvm::pdb::PDBFile>
34 CreateInstance(
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
39 lldb::WritableDataBufferSP data_sp,
40 const lldb::ProcessSP &process_sp,
44 lldb::DataBufferSP &data_sp,
55 bool isA(
const void *ClassID)
const override {
92 ObjectFilePDB(
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
105 #endif // LLDB_SOURCE_PLUGINS_OBJECTFILE_PDB_OBJECTFILEPDB_H
virtual bool isA(const void *ClassID) const
bool IsExecutable() const override
Tells whether this object file is capable of being the main executable for a process.
bool ParseHeader() override
Attempts to parse the object header.
void ParseSymtab(lldb_private::Symtab &symtab) override
Parse the symbol table into the provides symbol table object.
static size_t GetModuleSpecifications(const FileSpec &file, lldb::DataBufferSP &data_sp, lldb::offset_t data_offset, lldb::offset_t file_offset, lldb::offset_t length, ModuleSpecList &specs)
UUID GetUUID() override
Gets the UUID for this object file.
lldb::ByteOrder GetByteOrder() const override
Gets whether endian swapping should occur when extracting data from this object file.
static ObjectFile * CreateMemoryInstance(const lldb::ModuleSP &module_sp, lldb::WritableDataBufferSP data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t header_addr)
void CreateSections(SectionList &unified_section_list) override
static const char * GetPluginDescriptionStatic()
Type CalculateType() override
The object file should be able to calculate its type by looking at its file header and possibly the s...
bool isA(const void *ClassID) const override
void Dump(Stream *s) override
Dump a description of this object to a Stream.
uint32_t GetAddressByteSize() const override
Gets the address size in bytes for the current object file.
static llvm::StringRef GetPluginNameStatic()
static bool classof(const ObjectFile *obj)
string(SUBSTRING ${p} 10 -1 pStripped) if($
std::unique_ptr< llvm::pdb::PDBFile > m_file_up
ArchSpec GetArchitecture() override
Get the ArchSpec for this object file.
bool IsStripped() override
Detect if this object file has been stripped of local symbols.
Strata CalculateStrata() override
The object file should be able to calculate the strata of the object file.
ObjectFilePDB(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t offset, lldb::offset_t length)
@ eTypeDebugInfo
An object file that contains only debug information.
uint32_t GetDependentModules(FileSpecList &files) override
Extract the dependent modules from an object file.
static ObjectFile * CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t file_offset, lldb::offset_t length)
llvm::StringRef GetPluginName() override
A class that represents a running process on the host machine.
static std::unique_ptr< llvm::pdb::PDBFile > loadPDBFile(std::string PdbPath, llvm::BumpPtrAllocator &Allocator)
llvm::BumpPtrAllocator m_allocator
ByteOrder
Byte ordering definitions.
llvm::pdb::PDBFile & GetPDBFile()