Comment compiler un projet Rust en mode release avec des informations de débogage (debug symbols) ?
Bonjour à tous ! J'ai commencé à apprendre Rust et j'écris une petite application console pour travailler avec des fichiers. Pour le débogage, je lance habituellement `cargo run`, mais quand je veux vérifier les performances sur des données réelles, j'utilise `cargo build --release`. Le problème est que lorsque le programme plante en mode release, j'obtiens une stack trace complètement inutile. Au lieu de noms de fonctions normaux et de numéros de lignes, je ne vois que des adresses mémoire, et la fonction `backtrace` affiche quelque chose comme `0x55a2b3c4d5e6` au lieu de `my_module::process_file`.
Voici un exemple de code qui plante avec une erreur :
```rust
use std::fs;
fn main() {
let data = fs::read_to_string("config.toml").unwrap();
let parsed: Vec = data
.split(',')
.map(|s| s.trim().parse::().unwrap())
.collect();
println!("{:?}", parsed);
}
```
En mode debug, je vois l'emplacement exact du plantage : `called `Result::unwrap()` on an `Err` value: ParseIntError`. En mode release, je vois seulement `thread 'main' panick
No answers yet.
Connectez-vous pour laisser une réponse
Blogs