Avatar ·

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.