Skip to content

Commit 9d968f9

Browse files
committed
Bring back debugger requirement for types debug info
1 parent 14a3ee5 commit 9d968f9

3 files changed

Lines changed: 19 additions & 13 deletions

File tree

crates/forge/src/profile_validation/debugger.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,35 @@ use crate::profile_validation::{bool_field, bool_field_or_unstable, str_field};
22
use anyhow::ensure;
33
use camino::Utf8PathBuf;
44
use indoc::formatdoc;
5+
use scarb_api::version::scarb_version;
6+
use semver::Version;
57
use serde_json::Value;
68

79
pub fn check_debugger_compatibility(
810
compiler_config: &Value,
911
profile: &str,
1012
workspace_manifest_path: &Utf8PathBuf,
1113
) -> anyhow::Result<()> {
12-
let has_needed_entries = bool_field(compiler_config, "add_functions_debug_info")
14+
let mut has_needed_entries = bool_field(compiler_config, "add_functions_debug_info")
1315
&& bool_field_or_unstable(compiler_config, "add_statements_code_locations_debug_info")
1416
&& bool_field_or_unstable(compiler_config, "add_statements_functions_debug_info")
1517
&& str_field(compiler_config, "compiler_optimizations") == "Disabled";
1618

17-
let required_cairo_config_section = formatdoc! {
19+
let mut required_cairo_config_section = formatdoc! {
1820
"skip-optimizations = true
1921
unstable-add-statements-code-locations-debug-info = true
2022
unstable-add-statements-functions-debug-info = true
2123
add-functions-debug-info = true
2224
"
2325
};
2426

25-
// TODO(#4476): disabled for now due to `add-types-debug-info = true` causing compile error.
26-
// `add-types-debug-info` annotations are available from Scarb 2.19.0 onwards.
27+
// TODO: change scarb version when it comes out
28+
// `add-types-debug-info` annotations are available and bug-free from Scarb 2.20.0 onwards.
2729
// Require them for **much** better UX.
28-
// if scarb_version().is_ok_and(|version| version.scarb >= Version::new(2, 19, 0)) {
29-
// has_needed_entries &= bool_field(compiler_config, "add_types_debug_info");
30-
// required_cairo_config_section += "\nadd-types-debug-info = true";
31-
// }
30+
if scarb_version().is_ok_and(|version| version.scarb >= Version::new(2, 20, 0)) {
31+
has_needed_entries &= bool_field(compiler_config, "add_types_debug_info");
32+
required_cairo_config_section += "\nadd-types-debug-info = true";
33+
}
3234

3335
ensure!(
3436
has_needed_entries,

crates/forge/tests/e2e/debugger.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ fn test_launch_debugger_waits_for_connection() {
4949
unstable-add-statements-code-locations-debug-info = true
5050
unstable-add-statements-functions-debug-info = true
5151
add-functions-debug-info = true
52-
skip-optimizations = true",
52+
skip-optimizations = true
53+
add-types-debug-info = true
54+
",
5355
))
5456
.unwrap();
5557

@@ -73,6 +75,7 @@ fn test_launch_debugger_waits_for_connection_with_complex_config() {
7375
[cairo]
7476
skip-optimizations = true
7577
unstable-add-statements-code-locations-debug-info = true
78+
add-types-debug-info = true
7679
",
7780
))
7881
.unwrap();
@@ -128,7 +131,9 @@ fn test_launch_debugger_fails_for_fuzzer_test() {
128131
unstable-add-statements-code-locations-debug-info = true
129132
unstable-add-statements-functions-debug-info = true
130133
add-functions-debug-info = true
131-
skip-optimizations = true",
134+
skip-optimizations = true
135+
add-types-debug-info = true
136+
",
132137
))
133138
.unwrap();
134139

docs/src/snforge-advanced-features/debugging.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,13 @@ to have:
3232

3333
```toml
3434
[profile.dev.cairo]
35+
skip-optimizations = true
3536
add-statements-code-locations-debug-info = true
3637
add-statements-functions-debug-info = true
3738
add-functions-debug-info = true
38-
skip-optimizations = true
39+
add-types-debug-info = true
3940
```
4041

41-
<!-- TODO(#4476): Update docs once `add-types-debug-info` requirement is re-introduced -->
42-
4342
### Debugging in VSCode
4443

4544
1. Open your Cairo project in VSCode.

0 commit comments

Comments
 (0)