Dicas de debugging em rust para Rust

Prompt gerado automaticamente para Debugging em Rust em Rust

5.0
35 usos
ChatGPT
Usar no ChatGPT
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

Como Usar este Prompt

1

Clique no botão "Copiar Prompt" para copiar o conteúdo completo.

2

Abra sua ferramenta de IA de preferência (ChatGPT e etc.).

3

Cole o prompt e substitua as variáveis (se houver) com suas informações.

Compartilhe

Gostou deste prompt? Ajude outras pessoas a encontrá-lo!

Outros prompts de Rust

Continue explorando prompts nesta categoria.

Guia para troubleshooting em rust em Rust

Prompt gerado automaticamente para Troubleshooting em Rust em Rust

Guia para padrões de design em rust em Rust

Prompt gerado automaticamente para Padrões de design em Rust em Rust

Guia para padrões de design em rust em Rust

Prompt gerado automaticamente para Padrões de design em Rust em Rust