15 #define HEX8(v) llvm::format_hex(v, 4) 16 #define HEX16(v) llvm::format_hex(v, 6) 17 #define HEX32(v) llvm::format_hex(v, 10) 18 #define HEX64(v) llvm::format_hex(v, 18) 25 OS <<
" Magic = " <<
HEX32(
H.Magic) <<
"\n";
26 OS <<
" Version = " <<
HEX16(
H.Version) <<
'\n';
27 OS <<
" AddrOffSize = " <<
HEX8(
H.AddrOffSize) <<
'\n';
28 OS <<
" UUIDSize = " <<
HEX8(
H.UUIDSize) <<
'\n';
29 OS <<
" BaseAddress = " <<
HEX64(
H.BaseAddress) <<
'\n';
30 OS <<
" NumAddresses = " <<
HEX32(
H.NumAddresses) <<
'\n';
31 OS <<
" StrtabOffset = " <<
HEX32(
H.StrtabOffset) <<
'\n';
32 OS <<
" StrtabSize = " <<
HEX32(
H.StrtabSize) <<
'\n';
34 for (uint8_t
I = 0;
I <
H.UUIDSize; ++
I)
44 "invalid GSYM magic 0x%8.8x",
Magic);
47 "unsupported GSYM version %u",
Version);
55 "invalid address offset size %u",
69 "not enough data for a gsym::Header");
This class represents lattice values for constants.
Tagged union holding either a T or a Error.
A simplified binary data writer class that doesn't require targets, target definitions,...
bool operator==(const FunctionInfo &LHS, const FunctionInfo &RHS)
static ErrorSuccess success()
Create a success value.
std::pair< llvm::MachO::Target, std::string > UUID
constexpr size_t GSYM_MAX_UUID_SIZE
Merge contiguous icmps into a memcmp
FormattedNumber format_hex_no_prefix(uint64_t N, unsigned Width, bool Upper=false)
format_hex_no_prefix - Output N as a fixed width hexadecimal.
Lightweight error class with error context and mandatory checking.
This class implements an extremely fast bulk output stream that can only output to a stream.
constexpr uint32_t GSYM_MAGIC
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
raw_ostream & operator<<(raw_ostream &OS, const FunctionInfo &R)
constexpr uint32_t GSYM_VERSION
Error createStringError(std::error_code EC, char const *Fmt, const Ts &... Vals)
Create formatted StringError object.