9#ifndef LLDB_SOURCE_PLUGINS_OBJECTFILE_BREAKPAD_BREAKPADRECORDS_H 
   10#define LLDB_SOURCE_PLUGINS_OBJECTFILE_BREAKPAD_BREAKPADRECORDS_H 
   14#include "llvm/ADT/StringRef.h" 
   15#include "llvm/Support/FormatProviders.h" 
   16#include "llvm/TargetParser/Triple.h" 
   40  static std::optional<Kind> 
classify(llvm::StringRef 
Line);
 
 
   62  static std::optional<ModuleRecord> 
parse(llvm::StringRef 
Line);
 
   66  llvm::Triple::OSType 
OS;
 
   67  llvm::Triple::ArchType 
Arch;
 
 
   74llvm::raw_ostream &
operator<<(llvm::raw_ostream &
OS, 
const ModuleRecord &R);
 
   78  static std::optional<InfoRecord> 
parse(llvm::StringRef 
Line);
 
 
   87llvm::raw_ostream &
operator<<(llvm::raw_ostream &
OS, 
const InfoRecord &R);
 
   91  static std::optional<FileRecord> 
parse(llvm::StringRef 
Line);
 
 
  102llvm::raw_ostream &
operator<<(llvm::raw_ostream &
OS, 
const FileRecord &R);
 
  106  static std::optional<InlineOriginRecord> 
parse(llvm::StringRef 
Line);
 
 
  119                              const InlineOriginRecord &R);
 
  123  static std::optional<FuncRecord> 
parse(llvm::StringRef 
Line);
 
 
  141  static std::optional<InlineRecord> 
parse(llvm::StringRef 
Line);
 
  153  std::vector<std::pair<lldb::addr_t, lldb::addr_t>> 
Ranges;
 
 
  161  static std::optional<LineRecord> 
parse(llvm::StringRef 
Line);
 
 
  178  static std::optional<PublicRecord> 
parse(llvm::StringRef 
Line);
 
  180               llvm::StringRef 
Name)
 
 
 
  195  static std::optional<StackCFIRecord> 
parse(llvm::StringRef 
Line);
 
  202  std::optional<lldb::addr_t> 
Size;
 
 
  211  static std::optional<StackWinRecord> 
parse(llvm::StringRef 
Line);
 
 
 
Represents UUID's of various sizes.
FileRecord(size_t Number, llvm::StringRef Name)
static std::optional< FileRecord > parse(llvm::StringRef Line)
static std::optional< FuncRecord > parse(llvm::StringRef Line)
FuncRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t Size, lldb::addr_t ParamSize, llvm::StringRef Name)
static std::optional< InfoRecord > parse(llvm::StringRef Line)
static std::optional< InlineOriginRecord > parse(llvm::StringRef Line)
InlineOriginRecord(size_t Number, llvm::StringRef Name)
static std::optional< InlineRecord > parse(llvm::StringRef Line)
InlineRecord(size_t InlineNestLevel, uint32_t CallSiteLineNum, size_t CallSiteFileNum, size_t OriginNum)
std::vector< std::pair< lldb::addr_t, lldb::addr_t > > Ranges
static std::optional< LineRecord > parse(llvm::StringRef Line)
LineRecord(lldb::addr_t Address, lldb::addr_t Size, uint32_t LineNum, size_t FileNum)
static std::optional< ModuleRecord > parse(llvm::StringRef Line)
ModuleRecord(llvm::Triple::OSType OS, llvm::Triple::ArchType Arch, UUID ID)
llvm::Triple::ArchType Arch
static std::optional< PublicRecord > parse(llvm::StringRef Line)
PublicRecord(bool Multiple, lldb::addr_t Address, lldb::addr_t ParamSize, llvm::StringRef Name)
static std::optional< Kind > classify(llvm::StringRef Line)
Attempt to guess the kind of the record present in the argument without doing a full parse.
llvm::StringRef UnwindRules
StackCFIRecord(lldb::addr_t Address, std::optional< lldb::addr_t > Size, llvm::StringRef UnwindRules)
std::optional< lldb::addr_t > Size
static std::optional< StackCFIRecord > parse(llvm::StringRef Line)
llvm::StringRef ProgramString
static std::optional< StackWinRecord > parse(llvm::StringRef Line)
lldb::addr_t ParameterSize
lldb::addr_t SavedRegisterSize
StackWinRecord(lldb::addr_t RVA, lldb::addr_t CodeSize, lldb::addr_t ParameterSize, lldb::addr_t SavedRegisterSize, lldb::addr_t LocalSize, llvm::StringRef ProgramString)
llvm::raw_ostream & operator<<(llvm::raw_ostream &OS, Record::Kind K)
bool operator==(const ModuleRecord &L, const ModuleRecord &R)
llvm::StringRef toString(Record::Kind K)
A class that represents a running process on the host machine.