summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Pelikan <martin.pelikan@gmail.com>2018-01-30 13:41:34 +0000
committerMartin Pelikan <martin.pelikan@gmail.com>2018-01-30 13:41:34 +0000
commit79d729eef511f4db3c858765be39c38879074de9 (patch)
tree84276be9fe84abb3d4c0085b28c313d2c807d384
parent1ce64dcc64601acc219492885254aae5bf888e24 (diff)
downloadbcm5719-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.cpp7
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;
OpenPOWER on IntegriCloud