From 22b4f9b894594983d925a74380145ec7af09d4e0 Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Fri, 28 Mar 2025 12:38:27 +0100 Subject: [PATCH 1/2] fix(cargo-codspeed): fix incomplete callgraphs due to stripped debug symbols --- crates/cargo-codspeed/src/build.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crates/cargo-codspeed/src/build.rs b/crates/cargo-codspeed/src/build.rs index d4a7b2c7..cd1d03ed 100644 --- a/crates/cargo-codspeed/src/build.rs +++ b/crates/cargo-codspeed/src/build.rs @@ -115,6 +115,15 @@ impl BuildOptions<'_> { // Add debug info (equivalent to -g) rust_flags.push_str(" -C debuginfo=2"); + // Prevent debug info stripping + // https://doc.rust-lang.org/cargo/reference/profiles.html#release + // According to cargo docs, for release profile which we default to: + // `strip = "none"` and `debug = false`. + // In practice, if we set debug info through RUSTFLAGS, cargo still strips them, most + // likely because debug = false in the release profile. + // We also need to disable stripping through rust flags. + rust_flags.push_str(" -C strip=none"); + // Add the codspeed cfg flag if instrumentation mode is enabled if measurement_mode == MeasurementMode::Instrumentation { rust_flags.push_str(" --cfg codspeed"); From d7a1b4b055387fc01cd2888be4459e8a5ea37fa6 Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Fri, 28 Mar 2025 12:39:53 +0100 Subject: [PATCH 2/2] fix(divan): fix bench overflowing --- crates/divan_compat/benches/basic_example.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/divan_compat/benches/basic_example.rs b/crates/divan_compat/benches/basic_example.rs index 07e6043a..6cfe12da 100644 --- a/crates/divan_compat/benches/basic_example.rs +++ b/crates/divan_compat/benches/basic_example.rs @@ -1,6 +1,6 @@ use codspeed_divan_compat::Bencher; -fn fibo(n: i32) -> i32 { +fn fibo(n: u64) -> u64 { let mut a = 0; let mut b = 1; @@ -14,12 +14,12 @@ fn fibo(n: i32) -> i32 { } #[codspeed_divan_compat::bench] -fn fibo_500() -> i32 { - codspeed_divan_compat::black_box(fibo(500)) +fn fibo_50() -> u64 { + codspeed_divan_compat::black_box(fibo(50)) } #[codspeed_divan_compat::bench] -fn fibo_10() -> i32 { +fn fibo_10() -> u64 { codspeed_divan_compat::black_box(fibo(10)) }