-
Couldn't load subscription status.
- Fork 2.2k
EVMC tracing for interpreter #5065
base: master
Are you sure you want to change the base?
Conversation
|
cc @cdetrio |
|
@gumb0 The cpp-ethereum part is a prototype to check if the EVMC API is ok. |
|
Needs to be rebased and adapted to the latest version of ipsilon/evmc#32. |
|
@gumb0 Do you maybe have some spare time to take it over? |
e097de1 to
f324cc2
Compare
Codecov Report
@@ Coverage Diff @@
## master #5065 +/- ##
==========================================
- Coverage 60.81% 60.73% -0.09%
==========================================
Files 341 341
Lines 28127 28307 +180
Branches 3247 3260 +13
==========================================
+ Hits 17106 17192 +86
- Misses 9891 9975 +84
- Partials 1130 1140 +10 |
7dd24d3 to
7042f6a
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| LOG(evmc->m_vmTraceLogger) << logMessage.str(); | ||
| }; | ||
|
|
||
| _instance->set_tracer(_instance, tracer, reinterpret_cast<evmc_tracer_context*>(this)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could use evmc_set_tracer here.
Store them as member variables of a class wrapping evmc_instance.
…stead of repeating it in every opcode implementation.
|
Here's the summary of what is affected in aleth by changes in tracing:
|
|
The tracing API in EVMC has some flaws and will have to redesigned. But the amount of data transferred from the VM is good. |
This is a preview of the EVMC feature ipsilon/evmc#32.
Changes
code_offset. It might be convenient to revert this decision and send the opcode to the Client.Examples
test/testeth -t 'GeneralStateTests/stCreateTest' -- --verbosity 2 --singlenet Byzantium --singletest CREATE_EmptyContractWithStorageAndCallIt_0wei --vmtrace --vm interpreterAs you may see, there are at least 2 nice features here:
ADD (3)means that the result of the addition was3.The call instructions are not handled correctly yet. Now they are reported just before the internal call, but I want them to be reported after because this is more consistent and allows showing the returned values (
CALL (1),CALL (0),CREATE (<created address>)).