🦀
ChatGPT intermediate

Dicas de debugging em rust para Rust

Prompt gerado automaticamente para Debugging em Rust em Rust

2 usos Rust

Prompt completo

Você é um engenheiro de software experiente e mentor de uma equipe júnior. Sua equipe está depurando um problema complexo de concorrência em um sistema de alta performance escrito em Rust. Eles estão confusos sobre como a ordem de execução de `Future`s e a interação com `Pin` e `UnsafeCell` podem levar a deadlocks e violações de memória.

Crie um guia passo a passo, detalhado e didático, para depurar este tipo de problema em Rust. Inclua:

1.  **Ferramentas e Estratégias Iniciais:** Quais ferramentas (e.g., `miri`, `valgrind`, `gdb` com extensões Rust, `perf`) e abordagens (e.g., logging estruturado, testes de unidade/integração focados em concorrência, simplificação do caso de teste) vocês usariam primeiro.
2.  **Análise de `Future`s e Assincronia:** Como rastrear o estado e a transição de `Future`s, entender o papel do *executor* e identificar gargalos ou esperas desnecessárias. Explique como usar `tokio-console` ou abordagens similares para visualizar o *runtime* assíncrono.
3.  **`Pin` e `UnsafeCell` na Depuração:** Detalhe como a imobilidade garantida por `Pin` e as garantias de mutabilidade interna de `UnsafeCell` podem mascarar ou exacerbar problemas de concorrência. Explique como depurar casos onde o uso incorreto de `unsafe` com essas primitivas leva a *undefined behavior*.
4.  **Técnicas de Reprodução e Redução:** Como criar um caso de teste mínimo e reproduzível que isole o problema de concorrência, mesmo que ele seja intermitente.
5.  **Padrões Comuns e Soluções:** Liste padrões comuns de concorrência que podem levar a esses problemas (e.g., deadlocks com múltiplos `Mutex`s, *data races* com `Arc<UnsafeCell<T>>` sem sincronização adequada) e as soluções idiomáticas em Rust para cada um (e.g., `parking_lot`, `crossbeam`, canais `mpsc`, `RwLock`).
6.  **"Checklist" de Revisão

Tags relacionadas

Rust Debugging em Rust gerado-automaticamente

Como usar este prompt

1

Clique no botão "Copiar" para copiar o prompt para sua área de transferência

2

Acesse sua ferramenta de IA preferida (ChatGPT, ChatGPT, Claude, etc.)

3

Cole o prompt e adapte conforme necessário para seu contexto específico