Commit 0867fc1
feat(
* basic backtrace impl
* cleanup + remove frame kind
* nit
* cleanup
* nit
* display backtrace after traces
* move backtrace extraction
* fix inversion
* tests
* remove unused fields and args
* nit
* nit
* cleanup: extract_backtrace
* fix: don't set incorrect source location if we're unable to locate it
* don't collect creation source map
* use typed Path instead of String
* unify the HashMap keyed by artifact id
* mv source maps collection from multi_runner
* more cleanup
* feat: collect sources by build_id to work across fresh and cached compiler runs
* add mixed compilation test
* fork tests
* clippy
* feat: detect internal library calls using ast
* test_library_backtrace
* feat: detect external libraries
* cleanup: consolidate logic in the Backtrace type
* collect and store libs once not per source + add offset in SourceLocation to identify multiple contract / libs accurately
* lazy source data collection
* cleanup
* resolve labels using known_contracts
* fmt
* feat: BacktraceBuilder
* consolidate in backtrace builder
* don't clone library sources
* remove source_data from Backtrace
* fix breaking tests
* nit
* nit
* unify source and lib collection
* use parsed_libraries
* nit
* cleanup
* docs nits
* fix
* nit
* nit
* remove: contract_by_address from runner
* nit
* TraceMode::Debug for steps tracing when -vvv
* rm redundant clone
* rm unused deployed_bytecode from TestContract
* rm redundant verbosity from mcr
* nit
* nit
* fix tests
* don't enable ast
* minify json test fixture
* fix test svg
* ignore windows
* fix
* ignore win msg
* win fix, Forge fmt new backtraces tests
* defer source data collection + collect only required sources
* rm artifact_ids from BacktraceBuilder
* rm ast from SourceData
* avoid source data cloning
* defer BacktraceBuilder instatiation only in case of failure + pass required fields from config
* nit
* fix: oom due to TraceMode::Debug being set on verbosity >= 3
* fix backtrace tests - removal of internal lib detection
* fix
* fix: can_run_test_with_json_output_verbose
* fix: ext tests by setting verbosity for forge-std and sablier
* verbosity
* minify
* fix
* fix(backtraces): reduce TraceMode level + don't hold sources in memory + avoid cloning (#11648)
* defer source data collection + collect only required sources
* rm artifact_ids from BacktraceBuilder
* rm ast from SourceData
* avoid source data cloning
* defer BacktraceBuilder instatiation only in case of failure + pass required fields from config
* nit
* fix: oom due to TraceMode::Debug being set on verbosity >= 3
* fix backtrace tests - removal of internal lib detection
* fix
* fix: can_run_test_with_json_output_verbose
* fix: ext tests by setting verbosity for forge-std and sablier
* verbosity
* minify
* fix
* check for silent and verbosity outside iter + use with_capacity
* flattened - use filter_map outside
* rm unused solidity file
* make fns private + push to frames directly
* nit
* cleanup extract_frames
* cleanup retrieving names from trace.decoded
* format nit
* nit
Co-authored-by: DaniPopes <[email protected]>
* use output.artifact_ids to chain cached and compiled
* format nits
* feat: disable detecting source location on via-ir
* cleanup collect_source_data - rm redundant sorting
* rm redundant loop and ptr comparios in from_traces
* rm redundant prefix stripping
* fix
* unify resolving addresses for artifacts
* nits + move format to Display
* don't check linked libs if artifact already found
* internalize extract_frames + make BacktraceFrame private
* move to evm::traces
* init backtrace builder outside loop
* use memchr_iter
* maintain source_cache in builder to avoid collect sources on multiple failures + pass SourceData by reference
* cache by build_id in BacktraceBuilder to fetch sources for a build_id only once
* non_exhaustive Backtrace
* feat(traces): new TraceMode::Steps - enabled on -vvv
* nits
* fix: can_run_test_with_json_output_verbose
---------
Co-authored-by: grandizzy <[email protected]>
Co-authored-by: grandizzy <[email protected]>
Co-authored-by: DaniPopes <[email protected]>forge): backtraces (#11547)1 parent 322b227 commit 0867fc1
File tree
31 files changed
+1885
-216
lines changed- crates
- cheatcodes
- src
- evm/traces
- src
- backtrace
- forge
- src/cmd/test
- tests
- cli
- fixtures
- backtraces
- libraries
- it
- test-utils/src
31 files changed
+1885
-216
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
| 323 | + | |
323 | 324 | | |
324 | 325 | | |
325 | 326 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
1055 | 1055 | | |
1056 | 1056 | | |
1057 | 1057 | | |
1058 | | - | |
1059 | | - | |
1060 | | - | |
1061 | | - | |
1062 | | - | |
1063 | | - | |
1064 | | - | |
| 1058 | + | |
| 1059 | + | |
1065 | 1060 | | |
1066 | 1061 | | |
1067 | 1062 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
0 commit comments