From 04fc9aeda36f92e829a2a6028695fa97b48ba124 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Wed, 16 Jul 2014 22:02:20 +0000 Subject: [PATCH] [MCJIT] Improve a RuntimeDyldChecker diagnostic. When a RuntimeDyldChecker test requests an invalid operand for an instruction, print the decoded instruction to aid diagnosis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213202 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp index b10ec360aa5..1e63d9207f7 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp @@ -233,9 +233,13 @@ namespace llvm { std::string ErrMsg; raw_string_ostream ErrMsgStream(ErrMsg); ErrMsgStream << "Invalid operand index '" << format("%i", OpIdx) - << " for instruction '" << Symbol - << ". Instruction has only " - << format("%i", Inst.getNumOperands()) << " operands."; + << "' for instruction '" << Symbol + << "'. Instruction has only " + << format("%i", Inst.getNumOperands()) + << " operands.\nInstruction is:\n "; + Inst.dump_pretty(ErrMsgStream, + Checker.Disassembler->getContext().getAsmInfo(), + Checker.InstPrinter); return std::make_pair(EvalResult(ErrMsgStream.str()), ""); } -- 2.34.1