diff options
Diffstat (limited to 'source/Plugins/Process/minidump/MinidumpParser.h')
| -rw-r--r-- | source/Plugins/Process/minidump/MinidumpParser.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/source/Plugins/Process/minidump/MinidumpParser.h b/source/Plugins/Process/minidump/MinidumpParser.h index 49b1eef14de5..07ea6aa908ff 100644 --- a/source/Plugins/Process/minidump/MinidumpParser.h +++ b/source/Plugins/Process/minidump/MinidumpParser.h @@ -1,5 +1,4 @@ -//===-- MinidumpParser.h -----------------------------------------*- C++ -//-*-===// +//===-- MinidumpParser.h -----------------------------------------*- C++-*-===// // // The LLVM Compiler Infrastructure // @@ -11,9 +10,9 @@ #ifndef liblldb_MinidumpParser_h_ #define liblldb_MinidumpParser_h_ -// Project includes #include "MinidumpTypes.h" +#include "lldb/Target/MemoryRegionInfo.h" #include "lldb/Utility/ArchSpec.h" #include "lldb/Utility/DataBuffer.h" #include "lldb/Utility/Status.h" @@ -59,6 +58,9 @@ public: llvm::ArrayRef<MinidumpThread> GetThreads(); + llvm::ArrayRef<uint8_t> + GetThreadContext(const MinidumpLocationDescriptor &location); + llvm::ArrayRef<uint8_t> GetThreadContext(const MinidumpThread &td); llvm::ArrayRef<uint8_t> GetThreadContextWow64(const MinidumpThread &td); @@ -87,17 +89,31 @@ public: llvm::ArrayRef<uint8_t> GetMemory(lldb::addr_t addr, size_t size); - llvm::Optional<MemoryRegionInfo> GetMemoryRegionInfo(lldb::addr_t); + MemoryRegionInfo GetMemoryRegionInfo(lldb::addr_t load_addr); + + const MemoryRegionInfos &GetMemoryRegions(); // Perform consistency checks and initialize internal data structures Status Initialize(); + static llvm::StringRef GetStreamTypeAsString(uint32_t stream_type); + + const llvm::DenseMap<uint32_t, MinidumpLocationDescriptor> & + GetDirectoryMap() const { + return m_directory_map; + } + private: MinidumpParser(const lldb::DataBufferSP &data_buf_sp); + MemoryRegionInfo FindMemoryRegion(lldb::addr_t load_addr) const; + private: lldb::DataBufferSP m_data_sp; llvm::DenseMap<uint32_t, MinidumpLocationDescriptor> m_directory_map; + ArchSpec m_arch; + MemoryRegionInfos m_regions; + bool m_parsed_regions = false; }; } // end namespace minidump |
