Avatar ·

Depurador passo a passo para Rust: como depurar código em 2024?

Olá a todos! Estou escrevendo em Rust há alguns meses, mas não consigo me acostumar com a depuração. Em Python, eu simplesmente colocava `import pdb; pdb.set_trace()` e percorria o código tranquilamente. Em Rust, me sinto como um gatinho cego. Aqui está um problema específico. Tenho uma função que processa 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() } ``` Suspeito que `calculate_discount` está retornando um valor incorreto, mas não consigo entender exatamente o que está errado. `println!` imprime um monte de lixo no terminal, e `dbg!` polui a saída e não permite visualizar adequadamente o estado.