Avatar ·

Débogueur pas à pas pour Rust : comment déboguer du code en 2024 ?

Bonjour à tous ! J'écris en Rust depuis plusieurs mois, mais je n'arrive toujours pas à m'habituer au débogage. En Python, je mettais simplement `import pdb; pdb.set_trace()` et je parcourais le code tranquillement. En Rust, je me sens comme un chaton aveugle. Voici un problème concret. J'ai une fonction qui traite les commandes : ```rust fn process_orders(orders: Vec) -> Vec { orders .into_iter() .filter(|o| o.status == OrderStatus::Pending) .map(|o| { let discount = calculate_discount(&o); let total = o.amount - discount; ProcessedOrder { id: o.id, final_price: total, items_count: o.items.len(), } }) .collect() } ``` Je soupçonne que `calculate_discount` renvoie une valeur incorrecte, mais je n'arrive pas à comprendre ce qui ne va pas. `println!` affiche beaucoup de bruit dans le terminal, et `dbg!` encombre la sortie et ne permet pas de voir correctement l'état.