diff options
Diffstat (limited to 'source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h')
-rw-r--r-- | source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h b/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h index d8a94e19d34f..9fd313f26a0a 100644 --- a/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h +++ b/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h @@ -10,13 +10,10 @@ #ifndef liblldb_ObjectFilePECOFF_h_ #define liblldb_ObjectFilePECOFF_h_ -// C Includes -// C++ Includes #include <vector> -// Other libraries and framework includes -// Project includes #include "lldb/Symbol/ObjectFile.h" +#include "llvm/Object/Binary.h" class ObjectFilePECOFF : public lldb_private::ObjectFile { public: @@ -113,7 +110,7 @@ public: void Dump(lldb_private::Stream *s) override; - bool GetArchitecture(lldb_private::ArchSpec &arch) override; + lldb_private::ArchSpec GetArchitecture() override; bool GetUUID(lldb_private::UUID *uuid) override; @@ -261,6 +258,8 @@ protected: bool ParseCOFFOptionalHeader(lldb::offset_t *offset_ptr); bool ParseSectionHeaders(uint32_t offset); + uint32_t ParseDependentModules(); + static void DumpDOSHeader(lldb_private::Stream *s, const dos_header_t &header); static void DumpCOFFHeader(lldb_private::Stream *s, @@ -269,19 +268,27 @@ protected: const coff_opt_header_t &header); void DumpSectionHeaders(lldb_private::Stream *s); void DumpSectionHeader(lldb_private::Stream *s, const section_header_t &sh); - bool GetSectionName(std::string §_name, const section_header_t §); + void DumpDependentModules(lldb_private::Stream *s); + + llvm::StringRef GetSectionName(const section_header_t §); typedef std::vector<section_header_t> SectionHeaderColl; typedef SectionHeaderColl::iterator SectionHeaderCollIter; typedef SectionHeaderColl::const_iterator SectionHeaderCollConstIter; private: + bool CreateBinary(); + +private: dos_header_t m_dos_header; coff_header_t m_coff_header; coff_opt_header_t m_coff_header_opt; SectionHeaderColl m_sect_headers; lldb::addr_t m_image_base; lldb_private::Address m_entry_point_address; + llvm::Optional<lldb_private::FileSpecList> m_deps_filespec; + typedef llvm::object::OwningBinary<llvm::object::Binary> OWNBINType; + llvm::Optional<OWNBINType> m_owningbin; }; #endif // liblldb_ObjectFilePECOFF_h_ |