diff options
author | Martin Pelikan <martin.pelikan@gmail.com> | 2018-01-30 13:41:34 +0000 |
---|---|---|
committer | Martin Pelikan <martin.pelikan@gmail.com> | 2018-01-30 13:41:34 +0000 |
commit | 79d729eef511f4db3c858765be39c38879074de9 (patch) | |
tree | 84276be9fe84abb3d4c0085b28c313d2c807d384 | |
parent | 1ce64dcc64601acc219492885254aae5bf888e24 (diff) | |
download | bcm5719-llvm-79d729eef511f4db3c858765be39c38879074de9.tar.gz bcm5719-llvm-79d729eef511f4db3c858765be39c38879074de9.zip |
[XRay] clarify error messages when parsing broken traces
Summary:
When there's a mismatch of a function argument being right after the
wrong function, print an offset into the file where that happened, to
ease further debugging.
Reviewers: dberris, eizan, kpw
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42492
llvm-svn: 323758
-rw-r--r-- | llvm/lib/XRay/Trace.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/XRay/Trace.cpp b/llvm/lib/XRay/Trace.cpp index d1fcf1c35b3..d8c54ddc2b9 100644 --- a/llvm/lib/XRay/Trace.cpp +++ b/llvm/lib/XRay/Trace.cpp @@ -120,9 +120,10 @@ Error loadNaiveFormatLog(StringRef Data, XRayFileHeader &FileHeader, auto TId = RecordExtractor.getU32(&OffsetPtr); if (Record.FuncId != FuncId || Record.TId != TId) return make_error<StringError>( - Twine("Corrupted log, found payload following non-matching " - "function + thread record. Record for ") + - Twine(Record.FuncId) + " != " + Twine(FuncId), + Twine("Corrupted log, found arg payload following non-matching " + "function + thread record. Record for function ") + + Twine(Record.FuncId) + " != " + Twine(FuncId) + "; offset: " + + Twine(S.data() - Data.data()), std::make_error_code(std::errc::executable_format_error)); // Advance another four bytes to avoid padding. OffsetPtr += 4; |