LLDB mainline
|
Minidump writer for Linux. More...
#include <MinidumpFileBuilder.h>
Public Member Functions | |
MinidumpFileBuilder ()=default | |
MinidumpFileBuilder (const MinidumpFileBuilder &)=delete | |
MinidumpFileBuilder & | operator= (const MinidumpFileBuilder &)=delete |
MinidumpFileBuilder (MinidumpFileBuilder &&other)=default | |
MinidumpFileBuilder & | operator= (MinidumpFileBuilder &&other)=default |
~MinidumpFileBuilder ()=default | |
lldb_private::Status | AddSystemInfo (const llvm::Triple &target_triple) |
lldb_private::Status | AddModuleList (lldb_private::Target &target) |
lldb_private::Status | AddThreadList (const lldb::ProcessSP &process_sp) |
void | AddExceptions (const lldb::ProcessSP &process_sp) |
lldb_private::Status | AddMemoryList (const lldb::ProcessSP &process_sp, lldb::SaveCoreStyle core_style) |
void | AddMiscInfo (const lldb::ProcessSP &process_sp) |
void | AddLinuxFileStreams (const lldb::ProcessSP &process_sp) |
lldb_private::Status | Dump (lldb::FileUP &core_file) const |
size_t | GetDirectoriesNum () const |
Private Member Functions | |
void | AddDirectory (llvm::minidump::StreamType type, size_t stream_size) |
size_t | GetCurrentDataEndOffset () const |
Private Attributes | |
std::vector< llvm::minidump::Directory > | m_directories |
lldb_private::DataBufferHeap | m_data |
std::map< lldb::tid_t, llvm::minidump::LocationDescriptor > | m_tid_to_reg_ctx |
Minidump writer for Linux.
This class provides a Minidump writer that is able to snapshot the current process state. For the whole time, it stores all the data on heap.
Definition at line 41 of file MinidumpFileBuilder.h.
|
default |
|
delete |
|
default |
|
default |
|
private |
Definition at line 40 of file MinidumpFileBuilder.cpp.
References GetCurrentDataEndOffset(), and m_directories.
Referenced by AddExceptions(), AddLinuxFileStreams(), AddMemoryList(), AddMiscInfo(), AddModuleList(), AddSystemInfo(), and AddThreadList().
void MinidumpFileBuilder::AddExceptions | ( | const lldb::ProcessSP & | process_sp | ) |
Definition at line 602 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), lldb::eStopReasonException, lldb::eStopReasonSignal, lldb_private::Exception, lldb_private::ThreadList::GetSize(), lldb_private::ThreadList::GetThreadAtIndex(), m_data, and m_tid_to_reg_ctx.
Referenced by ObjectFileMinidump::SaveCore().
void MinidumpFileBuilder::AddLinuxFileStreams | ( | const lldb::ProcessSP & | process_sp | ) |
Definition at line 745 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), getFileStreamHelper(), lldb_private::ProcessInfo::GetProcessID(), m_data, and lldb_private::ProcessInfo::ProcessIDIsValid().
Referenced by ObjectFileMinidump::SaveCore().
lldb_private::Status MinidumpFileBuilder::AddMemoryList | ( | const lldb::ProcessSP & | process_sp, |
lldb::SaveCoreStyle | core_style | ||
) |
Definition at line 654 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), error(), GetCurrentDataEndOffset(), lldb_private::GetLog(), LLDB_LOGF, and m_data.
Referenced by ObjectFileMinidump::SaveCore().
void MinidumpFileBuilder::AddMiscInfo | ( | const lldb::ProcessSP & | process_sp | ) |
Definition at line 711 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), lldb_private::minidump::MinidumpMiscInfo::flags1, lldb_private::ProcessInfo::GetProcessID(), m_data, lldb_private::minidump::MinidumpMiscInfo::process_id, lldb_private::minidump::ProcessID, lldb_private::ProcessInfo::ProcessIDIsValid(), and lldb_private::minidump::MinidumpMiscInfo::size.
Referenced by ObjectFileMinidump::SaveCore().
Status MinidumpFileBuilder::AddModuleList | ( | lldb_private::Target & | target | ) |
Definition at line 205 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), error(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), GetCurrentDataEndOffset(), lldb_private::Target::GetImages(), lldb_private::ModuleList::GetModuleAtIndex(), getModuleFileSize(), lldb_private::ModuleList::GetSize(), m_data, and WriteString().
Referenced by ObjectFileMinidump::SaveCore().
Status MinidumpFileBuilder::AddSystemInfo | ( | const llvm::Triple & | target_triple | ) |
Definition at line 53 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), error(), GetCurrentDataEndOffset(), m_data, and WriteString().
Referenced by ObjectFileMinidump::SaveCore().
Status MinidumpFileBuilder::AddThreadList | ( | const lldb::ProcessSP & | process_sp | ) |
Definition at line 504 of file MinidumpFileBuilder.cpp.
References AddDirectory(), lldb_private::DataBufferHeap::AppendData(), ArchThreadContexts::data(), error(), findStackHelper(), lldb_private::Target::GetArchitecture(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), GetCurrentDataEndOffset(), lldb_private::ArchSpec::GetMachine(), lldb_private::ThreadList::GetSize(), lldb_private::RegisterContext::GetSP(), lldb_private::ThreadList::GetThreadAtIndex(), lldb_private::ArchSpec::GetTriple(), m_data, m_tid_to_reg_ctx, ArchThreadContexts::prepareRegisterContext(), ArchThreadContexts::size(), and sp.
Referenced by ObjectFileMinidump::SaveCore().
Status MinidumpFileBuilder::Dump | ( | lldb::FileUP & | core_file | ) | const |
Definition at line 788 of file MinidumpFileBuilder.cpp.
References error(), lldb_private::WritableDataBuffer::GetBytes(), lldb_private::DataBufferHeap::GetByteSize(), GetCurrentDataEndOffset(), GetDirectoriesNum(), m_data, and m_directories.
Referenced by ObjectFileMinidump::SaveCore().
|
private |
Definition at line 853 of file MinidumpFileBuilder.cpp.
References lldb_private::DataBufferHeap::GetByteSize(), and m_data.
Referenced by AddDirectory(), AddMemoryList(), AddModuleList(), AddSystemInfo(), AddThreadList(), and Dump().
size_t MinidumpFileBuilder::GetDirectoriesNum | ( | ) | const |
Definition at line 849 of file MinidumpFileBuilder.cpp.
References m_directories.
Referenced by Dump().
|
delete |
|
default |
|
private |
Definition at line 89 of file MinidumpFileBuilder.h.
Referenced by AddExceptions(), AddLinuxFileStreams(), AddMemoryList(), AddMiscInfo(), AddModuleList(), AddSystemInfo(), AddThreadList(), Dump(), and GetCurrentDataEndOffset().
|
private |
Definition at line 86 of file MinidumpFileBuilder.h.
Referenced by AddDirectory(), Dump(), and GetDirectoriesNum().
|
private |
Definition at line 94 of file MinidumpFileBuilder.h.
Referenced by AddExceptions(), and AddThreadList().