9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_MINIDUMPTYPES_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_MINIDUMPTYPES_H
14#include "llvm/ADT/ArrayRef.h"
15#include "llvm/ADT/BitmaskEnum.h"
16#include "llvm/ADT/SmallVector.h"
17#include "llvm/ADT/StringRef.h"
18#include "llvm/BinaryFormat/Minidump.h"
19#include "llvm/Support/ConvertUTF.h"
20#include "llvm/Support/Endian.h"
34using namespace llvm::minidump;
52 if (Buffer.size() <
sizeof(T)) {
53 error.SetErrorString(
"Insufficient buffer!");
57 Object =
reinterpret_cast<const T *
>(Buffer.data());
58 Buffer = Buffer.drop_front(
sizeof(T));
66 static std::pair<llvm::ArrayRef<MinidumpMemoryDescriptor64>, uint64_t>
70 "sizeof MinidumpMemoryDescriptor64 is not correct!");
76 llvm::support::ulittle32_t
size;
86 std::optional<lldb::pid_t>
GetPid()
const;
89 "sizeof MinidumpMiscInfo is not correct!");
97 static std::optional<LinuxProcStatus>
Parse(llvm::ArrayRef<uint8_t> &data);
static llvm::raw_ostream & error(Stream &strm)
LinuxProcStatus()=default
lldb::pid_t GetPid() const
static std::optional< LinuxProcStatus > Parse(llvm::ArrayRef< uint8_t > &data)
llvm::StringRef proc_status
Status consumeObject(llvm::ArrayRef< uint8_t > &Buffer, const T *&Object)
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()
A class that represents a running process on the host machine.
@ LLVM_MARK_AS_BITMASK_ENUM
static std::pair< llvm::ArrayRef< MinidumpMemoryDescriptor64 >, uint64_t > ParseMemory64List(llvm::ArrayRef< uint8_t > &data)
llvm::support::ulittle64_t start_of_memory_range
llvm::support::ulittle64_t data_size
llvm::support::ulittle32_t process_kernel_time
llvm::support::ulittle32_t process_id
llvm::support::ulittle32_t process_user_time
llvm::support::ulittle32_t flags1
llvm::support::ulittle32_t size
static const MinidumpMiscInfo * Parse(llvm::ArrayRef< uint8_t > &data)
llvm::support::ulittle32_t process_create_time
std::optional< lldb::pid_t > GetPid() const