Enable ethdebug debug info and output selection.#15289
Merged
Conversation
aarlt
commented
Jul 22, 2024
aarlt
commented
Jul 22, 2024
ekpyron
reviewed
Jul 22, 2024
ccbe426 to
71bf655
Compare
cameel
reviewed
Jul 24, 2024
ec729b3 to
ee2bc12
Compare
ee2bc12 to
9772d20
Compare
09fd459 to
53e12ef
Compare
4b5c548 to
a262eef
Compare
a262eef to
c4cb445
Compare
aarlt
commented
Oct 15, 2024
ada3616 to
6b2efa0
Compare
6b2efa0 to
b8851f6
Compare
b8851f6 to
1edf1f4
Compare
1edf1f4 to
bf1527c
Compare
clonker
reviewed
Jan 7, 2025
Member
clonker
left a comment
There was a problem hiding this comment.
Nothing deal-breaking I think. A couple of suggestions and questions. I would be wary when/how much debug data is collected, in particular that we don't collect it by default and just don't output it in the end - that could pose a big performance drain.
liblangutil/DebugInfoSelection.h
Outdated
| static DebugInfoSelection const Only(bool DebugInfoSelection::* _member) noexcept; | ||
| static DebugInfoSelection const Default() noexcept { return All(); } | ||
| static DebugInfoSelection const Default() noexcept { return ExceptExperimental(); } | ||
| static DebugInfoSelection const Except(std::vector<bool DebugInfoSelection::*> const& _members) noexcept; |
Member
There was a problem hiding this comment.
I think it is fine but I was a bit confused about the naming Except and ExceptExperimental. I would have imagined to call something like All{}.exceptExperimental(). Or, to make it more clear for ... people like me, you could name it AllExceptExperimental. Or something. Minor point in any case, feel free to ignore
| [](const Json& result) | ||
| { | ||
| return result["contracts"]["fileA"]["contractA"]["evm"]["deployedBytecode"].contains("ethdebug") && | ||
| result["contracts"]["fileB"]["contractB"]["evm"]["bytecode"].contains("ethdebug") ; |
clonker
reviewed
Jan 9, 2025
Member
clonker
left a comment
There was a problem hiding this comment.
just a few whitespaces :D
lgtm otherwise
clonker
previously approved these changes
Jan 9, 2025
clonker
approved these changes
Jan 27, 2025
6 tasks
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.
debug-infowas set toethdebugir,irOptimizedand/orethdebugwas selected as output.standard_debug_info_in_yul_ethdebug_output_ir_optimized,standard_debug_info_in_yul_ethdebug_output_no_irstrict-assemblye.g.solc --strict-assembly <yul> --debug-info ethdebugdebug-infoethdebugis excluded from the help on clidebug-infoethdebugis excluded fromallon cli and wildcard selection*in standard-jsonethdebugwas selected as outputdebug-infowas selected, it implicitly setdebug-infotoethdebug.solc <contract> --ethdebugvia-irwas not specified, it will error with a message stating thatethdebugcan only be selected as output, ifvia-irwas defined.solc <contract> --ethdebugonly works with--via-irdebug-infowas selected and did not containethdebug, an error will be generated stating thatethdebugneed to be set indebug-infosolc <contract> --ethdebug --debug-info locationstrict-assemblywill always work e.g.solc --strict-assembly <yul> --ethdebugethdebugis not shown in cli helpethdebugoutput selection is excluded from wildcard selection*in standard-jsonUPDATE
After some discussion with @gnidan and @ekpyron it turned out that we need something slightly different:
ethdebugoutput will now be enabled withevm.bytecode.ethdebug(deploytime part) andevm.deployedBytecode.ethdebug(runtime part)evm.bytecodeandevm.deployedBytecodebehave like a wildcard, so the ethdebug stuff is excluded here.--binand--bin-runtimeethdebug selection will now work similar with--ethdebugand--ethdebug-runtimeUPDATE 01/2025