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