LLVM: lib/XRay/FileHeaderReader.cpp Source File (original) (raw)
17
18
19
20
21
22
23
24
25
26
27
29 auto PreReadOffset = OffsetPtr;
30 FileHeader.Version = HeaderExtractor.getU16(&OffsetPtr);
31 if (OffsetPtr == PreReadOffset)
33 std::make_error_code(std::errc::invalid_argument),
34 "Failed reading version from file header at offset %" PRId64 ".",
35 OffsetPtr);
36
37 PreReadOffset = OffsetPtr;
38 FileHeader.Type = HeaderExtractor.getU16(&OffsetPtr);
39 if (OffsetPtr == PreReadOffset)
41 std::make_error_code(std::errc::invalid_argument),
42 "Failed reading file type from file header at offset %" PRId64 ".",
43 OffsetPtr);
44
45 PreReadOffset = OffsetPtr;
47 if (OffsetPtr == PreReadOffset)
49 std::make_error_code(std::errc::invalid_argument),
50 "Failed reading flag bits from file header at offset %" PRId64 ".",
51 OffsetPtr);
52
55 PreReadOffset = OffsetPtr;
57 if (OffsetPtr == PreReadOffset)
59 std::make_error_code(std::errc::invalid_argument),
60 "Failed reading cycle frequency from file header at offset %" PRId64
61 ".",
62 OffsetPtr);
63
66
67
68
69 OffsetPtr += 16;
70 return std::move(FileHeader);
71}
LLVM_ABI Expected< XRayFileHeader > readBinaryFormatHeader(DataExtractor &HeaderExtractor, uint64_t &OffsetPtr)
Convenience function for loading the file header given a data extractor at a specified offset.
Definition FileHeaderReader.cpp:15