LLDB mainline
lldb_private::minidump::MinidumpParser Class Reference

#include <MinidumpParser.h>

Public Member Functions

llvm::ArrayRef< uint8_t > GetData ()
llvm::ArrayRef< uint8_t > GetStream (StreamType stream_type)
std::optional< llvm::ArrayRef< uint8_t > > GetRawStream (StreamType stream_type)
UUID GetModuleUUID (const minidump::Module *module)
llvm::ArrayRef< minidump::Thread > GetThreads ()
llvm::ArrayRef< uint8_t > GetThreadContext (const LocationDescriptor &location)
llvm::ArrayRef< uint8_t > GetThreadContext (const minidump::Thread &td)
llvm::ArrayRef< uint8_t > GetThreadContextWow64 (const minidump::Thread &td)
ArchSpec GetArchitecture ()
const MinidumpMiscInfoGetMiscInfo ()
std::optional< LinuxProcStatusGetLinuxProcStatus ()
std::optional< lldb::pid_tGetPid ()
llvm::ArrayRef< minidump::Module > GetModuleList ()
std::vector< const minidump::Module * > GetFilteredModuleList ()
llvm::iterator_range< ExceptionStreamsIteratorGetExceptionStreams ()
std::optional< RangeFindMemoryRange (lldb::addr_t addr)
llvm::Expected< llvm::ArrayRef< uint8_t > > GetMemory (lldb::addr_t addr, size_t size)
std::pair< MemoryRegionInfos, boolBuildMemoryRegions ()
 Returns a list of memory regions and a flag indicating whether the list is complete (includes all regions mapped into the process memory).
llvm::iterator_range< FallibleMemory64IteratorGetMemory64Iterator (llvm::Error &err)
llvm::object::MinidumpFile & GetMinidumpFile ()

Static Public Member Functions

static llvm::Expected< MinidumpParserCreate (const lldb::DataBufferSP &data_buf_sp)
static llvm::StringRef GetStreamTypeAsString (StreamType stream_type)
static MemoryRegionInfo GetMemoryRegionInfo (const MemoryRegionInfos &regions, lldb::addr_t load_addr)

Private Member Functions

 MinidumpParser (lldb::DataBufferSP data_sp, std::unique_ptr< llvm::object::MinidumpFile > file)
void PopulateMemoryRanges ()

Private Attributes

lldb::DataBufferSP m_data_sp
std::unique_ptr< llvm::object::MinidumpFile > m_file
ArchSpec m_arch
MemoryRangeVector m_memory_ranges

Detailed Description

Definition at line 67 of file MinidumpParser.h.

Constructor & Destructor Documentation

◆ MinidumpParser()

MinidumpParser::MinidumpParser ( lldb::DataBufferSP data_sp,
std::unique_ptr< llvm::object::MinidumpFile > file )
private

Definition at line 39 of file MinidumpParser.cpp.

References m_data_sp, and m_file.

Referenced by Create().

Member Function Documentation

◆ BuildMemoryRegions()

std::pair< MemoryRegionInfos, bool > MinidumpParser::BuildMemoryRegions ( )

Returns a list of memory regions and a flag indicating whether the list is complete (includes all regions mapped into the process memory).

Definition at line 611 of file MinidumpParser.cpp.

References CreateRegionsCacheFromLinuxMaps(), CreateRegionsCacheFromMemoryInfoList(), and CreateRegionsCacheFromMemoryList().

◆ Create()

llvm::Expected< MinidumpParser > MinidumpParser::Create ( const lldb::DataBufferSP & data_buf_sp)
static

Definition at line 30 of file MinidumpParser.cpp.

References MinidumpParser().

Referenced by lldb_private::minidump::ProcessMinidump::DoLoadCore().

◆ FindMemoryRange()

std::optional< minidump::Range > MinidumpParser::FindMemoryRange ( lldb::addr_t addr)

◆ GetArchitecture()

ArchSpec MinidumpParser::GetArchitecture ( )

Definition at line 156 of file MinidumpParser.cpp.

References lldb_private::GetLog(), LLDB_LOG_ERROR, m_arch, m_file, and lldb_private::Process.

Referenced by GetModuleUUID().

◆ GetData()

llvm::ArrayRef< uint8_t > MinidumpParser::GetData ( )

Definition at line 43 of file MinidumpParser.cpp.

References m_data_sp.

Referenced by GetModuleUUID(), and GetThreadContext().

◆ GetExceptionStreams()

llvm::iterator_range< ExceptionStreamsIterator > MinidumpParser::GetExceptionStreams ( )

Definition at line 441 of file MinidumpParser.cpp.

References GetMinidumpFile().

◆ GetFilteredModuleList()

std::vector< const minidump::Module * > MinidumpParser::GetFilteredModuleList ( )

◆ GetLinuxProcStatus()

std::optional< LinuxProcStatus > MinidumpParser::GetLinuxProcStatus ( )

Definition at line 244 of file MinidumpParser.cpp.

References GetStream(), and lldb_private::minidump::LinuxProcStatus::Parse().

Referenced by GetPid().

◆ GetMemory()

llvm::Expected< llvm::ArrayRef< uint8_t > > MinidumpParser::GetMemory ( lldb::addr_t addr,
size_t size )

Definition at line 498 of file MinidumpParser.cpp.

References FindMemoryRange().

Referenced by GetThreadContextWow64().

◆ GetMemory64Iterator()

llvm::iterator_range< FallibleMemory64Iterator > MinidumpParser::GetMemory64Iterator ( llvm::Error & err)

Definition at line 523 of file MinidumpParser.cpp.

References m_file.

Referenced by CreateRegionsCacheFromMemoryList().

◆ GetMemoryRegionInfo()

◆ GetMinidumpFile()

llvm::object::MinidumpFile & lldb_private::minidump::MinidumpParser::GetMinidumpFile ( )
inline

◆ GetMiscInfo()

const MinidumpMiscInfo * MinidumpParser::GetMiscInfo ( )

Definition at line 235 of file MinidumpParser.cpp.

References GetStream(), and lldb_private::minidump::MinidumpMiscInfo::Parse().

Referenced by GetPid().

◆ GetModuleList()

llvm::ArrayRef< minidump::Module > MinidumpParser::GetModuleList ( )

◆ GetModuleUUID()

◆ GetPid()

std::optional< lldb::pid_t > MinidumpParser::GetPid ( )

◆ GetRawStream()

std::optional< llvm::ArrayRef< uint8_t > > MinidumpParser::GetRawStream ( StreamType stream_type)

Definition at line 53 of file MinidumpParser.cpp.

References m_file.

◆ GetStream()

llvm::ArrayRef< uint8_t > MinidumpParser::GetStream ( StreamType stream_type)

◆ GetStreamTypeAsString()

llvm::StringRef MinidumpParser::GetStreamTypeAsString ( StreamType stream_type)
static

◆ GetThreadContext() [1/2]

llvm::ArrayRef< uint8_t > MinidumpParser::GetThreadContext ( const LocationDescriptor & location)

Definition at line 98 of file MinidumpParser.cpp.

References GetData().

Referenced by GetThreadContext().

◆ GetThreadContext() [2/2]

llvm::ArrayRef< uint8_t > MinidumpParser::GetThreadContext ( const minidump::Thread & td)

Definition at line 105 of file MinidumpParser.cpp.

References GetThreadContext().

◆ GetThreadContextWow64()

llvm::ArrayRef< uint8_t > MinidumpParser::GetThreadContextWow64 ( const minidump::Thread & td)

◆ GetThreads()

llvm::ArrayRef< minidump::Thread > MinidumpParser::GetThreads ( )

◆ PopulateMemoryRanges()

void MinidumpParser::PopulateMemoryRanges ( )
private

Member Data Documentation

◆ m_arch

ArchSpec lldb_private::minidump::MinidumpParser::m_arch
private

Definition at line 130 of file MinidumpParser.h.

Referenced by GetArchitecture().

◆ m_data_sp

lldb::DataBufferSP lldb_private::minidump::MinidumpParser::m_data_sp
private

Definition at line 128 of file MinidumpParser.h.

Referenced by GetData(), and MinidumpParser().

◆ m_file

std::unique_ptr<llvm::object::MinidumpFile> lldb_private::minidump::MinidumpParser::m_file
private

◆ m_memory_ranges

MemoryRangeVector lldb_private::minidump::MinidumpParser::m_memory_ranges
private

Definition at line 131 of file MinidumpParser.h.

Referenced by FindMemoryRange(), and PopulateMemoryRanges().


The documentation for this class was generated from the following files: