27 context.get_bytecode_manager().get_bytecode_id();
51 vinfo(
"Bytecode retrieval error:: ", e.what());
54 vinfo(
"Instruction fetching error: ", e.what());
57 vinfo(
"Addressing exception: ", e.what());
60 vinfo(
"Register validation exception: ", e.what());
63 vinfo(
"Out of gas exception: ", e.what());
66 vinfo(
"Opcode execution exception: ", e.what());
68 }
catch (
const std::exception& e) {
71 info(
"An unhandled exception occurred: ", e.what());
#define BB_BENCH_NAME(name)
virtual std::unique_ptr< GasTrackerInterface > make_gas_tracker(GasEvent &gas_event, const Instruction &instruction, ContextInterface &context)=0
virtual std::unique_ptr< AddressingInterface > make_addressing(AddressingEvent &event)=0
std::unique_ptr< GasTrackerInterface > gas_tracker
void dispatch_opcode(ExecutionOpCode opcode, ContextInterface &context, const std::vector< Operand > &resolved_operands)
ExecutionComponentsProviderInterface & execution_components
void handle_exceptional_halt(ContextInterface &context)
std::stack< std::unique_ptr< ContextInterface > > external_call_stack
ExecutionResult get_execution_result() const
ExecutionIdManagerInterface & execution_id_manager
virtual void increment_execution_id()=0
ExecutionResult execute(std::unique_ptr< ContextInterface > enqueued_call_context) override
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept