Fixes https://github.com/ethereum/cpp-ethereum/issues/2585.
@ -325,7 +325,8 @@ bool Executive::go(OnOpFunc const& _onOp)
#endif
try
{
auto vm = VMFactory::create();
// Create VM instance. Force Interpreter if tracing requested.
auto vm = _onOp ? VMFactory::create(VMKind::Interpreter) : VMFactory::create();
if (m_isCreation)
auto out = vm->exec(m_gas, *m_ext, _onOp);
@ -1167,11 +1167,7 @@ ExecutionResult State::execute(LastHashes const& _lh, Transaction const& _t, Per
ctrace << toHex(e.t().rlp());
if (!e.execute())
if (onOp)
VMFactory::setKind(VMKind::Interpreter); // force interpreter if a trace is wanted
e.go(onOp);
}
e.finalize();
#if ETH_PARANOIA