From 95059813224e59caaf6425d310fc01eb276f3151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Fri, 11 May 2018 14:53:43 +0200 Subject: [PATCH] Tracing API --- include/evmc/evmc.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/evmc/evmc.h b/include/evmc/evmc.h index 08db5e702..3c0ea620d 100644 --- a/include/evmc/evmc.h +++ b/include/evmc/evmc.h @@ -685,6 +685,26 @@ typedef struct evmc_result (*evmc_execute_fn)(struct evmc_instance* instance, size_t code_size); +struct evmc_tracer_context; + +typedef void (*evmc_trace_callback)(struct evmc_tracer_context* context, + int depth, + int step, + size_t code_offset, + enum evmc_status_code status_code, + int64_t gas_left, + size_t stack_num_items, + const struct evmc_uint256be* pushed_stack_item, + size_t memory_size, + size_t changed_memory_offset, + size_t changed_memory_size, + const uint8_t* changed_memory); + +typedef void (*evmc_set_tracer)(struct evmc_instance* instance, + evmc_trace_callback callback, + struct evmc_tracer_context* context); + + /** * The EVM instance. * @@ -720,6 +740,8 @@ struct evmc_instance /** Pointer to function executing a code by the EVM instance. */ evmc_execute_fn execute; + evmc_set_tracer set_tracer; + /** * Optional pointer to function modifying VM's options. *