This repository has been archived by the owner on Feb 26, 2024. It is now read-only.
Debugger errors when doing p sto
or v
within certain failed contract creations on Geth 1.10.5 and up
#4583
Labels
Issue
Suppose you are debugging a transaction, and that transaction creates a contract with the
CREATE
opcode (as opposed toCREATE2
, or the whole transaction being a contract creation), and that contract creation reverts.Step into that contract creation, and type
p sto
, orv
. If you are using Geth 1.10.5 or later, the debugger will error.This is because, as of 1.10.5, Geth no longer includes
storage
in its traces. The debugger mostly doesn't usestorage
anymore... but when inside a reverted contract creation that was initiated withCREATE
, it still does. When it doesn't find it there, it crashes.This is follow-on work to #4565, which dealt with Geth no longer supplying memory. The good news is that unlike with memory, we only use
storage
in this particular case, so the error isn't very widespread. The bad news is I can't find any way to turn storage back on.The good news is that there is a way we can eliminate our reliance on this remaining use of
storage
; I guess that's just what we'll have to do!Steps to Reproduce
See above. If you want a specific example, you can use
NestedException.run()
from thecreation-failure
from thesolidity-test-cases
repo.Expected Behavior
Debugger should correctly report storage (for
p sto
) and variables (forv
).Actual Results
Debugger errors.
Environment
truffle version
): 5.4.26The text was updated successfully, but these errors were encountered: