Depurador paso a paso para Rust: ¿cómo depurar código en 2024?
¡Hola a todos! Llevo varios meses escribiendo en Rust, pero no logro acostumbrarme a la depuración. En Python simplemente ponía `import pdb; pdb.set_trace()` y avanzaba tranquilamente por el código. En Rust me siento como un gatito ciego.
Aquí hay un problema concreto. Tengo una función que procesa pedidos:
```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()
}
```
Sospecho que `calculate_discount` devuelve un valor incorrecto, pero no puedo entender qué está saliendo mal. `println!` imprime un montón de basura en la terminal, y `dbg!` satura la salida y no permite ver correctamente el estado.