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/Optional.h"
17 #include "llvm/ADT/SmallVector.h"
18 #include "llvm/ADT/StringRef.h"
19 #include "llvm/BinaryFormat/Minidump.h"
20 #include "llvm/Support/ConvertUTF.h"
21 #include "llvm/Support/Endian.h"
34 using 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>
67 ParseMemory64List(llvm::ArrayRef<uint8_t> &data);
70 "sizeof MinidumpMemoryDescriptor64 is not correct!");
76 llvm::support::ulittle32_t
size;
86 llvm::Optional<lldb::pid_t> GetPid()
const;
89 "sizeof MinidumpMiscInfo is not correct!");
97 static llvm::Optional<LinuxProcStatus> Parse(llvm::ArrayRef<uint8_t> &data);
107 #endif // LLDB_SOURCE_PLUGINS_PROCESS_MINIDUMP_MINIDUMPTYPES_H