Feat-11 : Add limit param to stop opcode trace capture after N steps#10173
Open
sagarkhandagre998 wants to merge 3 commits intobesu-eth:mainfrom
Open
Feat-11 : Add limit param to stop opcode trace capture after N steps#10173sagarkhandagre998 wants to merge 3 commits intobesu-eth:mainfrom
limit param to stop opcode trace capture after N steps#10173sagarkhandagre998 wants to merge 3 commits intobesu-eth:mainfrom
Conversation
Signed-off-by: Sagar Khandagre <sagar.khandagre998@gmail.com>
…emainingPostExecution Signed-off-by: Sagar Khandagre <sagar.khandagre998@gmail.com>
…ostExecution backfill Signed-off-by: Sagar Khandagre <sagar.khandagre998@gmail.com>
Author
|
@macfarla Kindly take a look at once. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR description
Add
limitparam to stop opcode trace capture after N stepsPart of aligning Besu's debug RPC endpoints with the execution-apis spec.
What changed:
OpCodeTracerConfigBuilder— newlimit(int)config option (0= unlimited, default)TransactionTraceParams— new optionallimitJSON param wired intotraceOptions()DebugOperationTracer— dedicatedstepCountfield drives the limit check; backfill ofgasRemainingPostExecutionon the last captured frame is preserved even after the limit is hitDebugOperationTracerTest— two new unit tests covering frame count cap and backfill correctnessBehaviour:
limitis absent or0— no change to existing behaviourlimit=N— exactly NStructLogentries are recorded; EVM execution continues to completion per specTwo bugs fixed over the naive implementation:
traceFrames.size()as step counter — replaced with a dedicatedstepCountfield that is explicit and reset correctly per transactiongasRemainingPostExecutionbackfilled — moved the early-return guard intracePostExecutionto after the backfill block so it always runsFixed Issue(s)
Fixes #10115
Thanks for sending a pull request! Have you done the following?
doc-change-requiredlabel to this PR if updates are required.Locally, you can run these tests to catch failures early:
./gradlew spotlessApply./gradlew build./gradlew acceptanceTest./gradlew integrationTest./gradlew ethereum:referenceTests:referenceTests