Schritt-für-Schritt-Debugger für Rust: Wie man Code im Jahr 2024 debuggt?
Hallo zusammen! Ich schreibe seit ein paar Monaten in Rust, kann mich aber immer noch nicht an das Debugging gewöhnen. In Python habe ich einfach `import pdb; pdb.set_trace()` gesetzt und bin ruhig durch den Code geschritten. In Rust fühle ich mich wie ein blindes Kätzchen.
Hier ist ein konkretes Problem. Ich habe eine Funktion, die Bestellungen verarbeitet:
```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()
}
```
Ich vermute, dass `calculate_discount` einen falschen Wert zurückgibt, kann aber nicht verstehen, was genau schief läuft. `println!` gibt eine Menge Müll im Terminal aus, und `dbg!` überlädt die Ausgabe und erlaubt es nicht, den Zustand richtig zu betrachten.