Pular para o conteúdo principal

Depuração com Suporte de IA

dica

Os recursos de depuração com IA do Cursor ajudam você a identificar e corrigir problemas mais rapidamente, fornecendo análises e sugestões inteligentes.

Primeiros Passos

Ativando o Suporte de Depuração com IA

  1. Abra a Paleta de Comandos (Ctrl/Cmd + Shift + P)
  2. Digite "Enable AI Debug"
  3. Selecione para ativar o recurso

Recursos Básicos

1. Análise de Erros

Quando você encontra um erro, a IA pode ajudar a analisá-lo:

example-error.js
// Erro no código
const user = getUserData();
console.log(user.name.toLowerCase());

// Análise da IA
// ⚠️ Referência potencialmente nula
// - user pode ser null/undefined
// - user.name pode ser null/undefined
// Sugestão: Adicionar verificações de nulidade

2. Correções Rápidas

A IA sugere correções para problemas comuns:

component.tsx
// Antes: Erro de tipo
const handleClick = (event) => {
console.log(event.value);
};

// Sugestão da IA
const handleClick = (event: React.MouseEvent) => {
console.log(event.currentTarget.value);
};

Recursos Avançados

1. Análise de Tempo de Execução

A IA pode analisar o comportamento em tempo de execução:

performance.py
# Problema de desempenho
def process_data(items):
result = []
for item in items:
result.append(transform(item))
return result

# Sugestão da IA
def process_data(items):
return [transform(item) for item in items]
# 🚀 Melhoria de desempenho:
# - List comprehension é mais rápida
# - Reduz alocação de memória

2. Depuração Contextual

A IA entende o contexto da sua base de código:

auth.service.ts
// Código original com bug
async function validateUser(token) {
const user = await getUser(token);
return user.isValid;
}

// Análise de Depuração da IA
/**
* Problemas encontrados:
* 1. Sem tratamento de erro para tokens inválidos
* 2. Sem verificação de tipo para o objeto user
* 3. Falta verificação de nulidade para user
*/

// Correção Sugerida pela IA
async function validateUser(token: string): Promise<boolean> {
try {
const user = await getUser(token);
return user?.isValid ?? false;
} catch (error) {
console.error('Falha na validação do usuário:', error);
return false;
}
}

Fluxos de Depuração

1. Depuração Interativa

Use a IA durante sessões de depuração:

// Coloque pontos de interrupção com IA
debugger; // A IA analisará estados de variáveis

// Console de Depuração com IA
> ai.analyze(variableName)
> ai.suggest.fix()
> ai.explain.state()

2. Análise de Logs

A IA pode ajudar a analisar logs complexos:

# Saída de log complexa
[2024-03-20T10:15:30] Erro: Conexão recusada...
[2024-03-20T10:15:31] Tentativa de reconexão 1...
[2024-03-20T10:15:32] Erro: Tempo limite esgotado...

# Análise da IA
"""
Problema detectado: Problema de conectividade de rede
- Conexão inicialmente recusada
- Tempo limite esgotado na nova tentativa
Sugestão: Verifique as configurações de rede e regras de firewall
"""

Recursos Específicos de Linguagem

JavaScript/TypeScript

// Inferência de tipo
function processData(data) {
// A IA sugere tipos baseados no uso
return data.map(item => item.value);
}

Python

# Dicas de tipo e verificações em tempo de execução
def calculate_average(numbers: List[float]) -> float:
# A IA sugere validação de entrada
if not numbers:
raise ValueError("Lista vazia fornecida")
return sum(numbers) / len(numbers)

Melhores Práticas

1. Prevenção de Erros

Use a IA para detectar erros potenciais:

// Prevenção de erro sugerida pela IA
function divideNumbers(a: number, b: number): number {
// A IA adiciona verificações de segurança
if (typeof a !== 'number' || typeof b !== 'number') {
throw new TypeError('Os argumentos devem ser números');
}
if (b === 0) {
throw new Error('Divisão por zero');
}
return a / b;
}

2. Qualidade de Código

A IA ajuda a manter a qualidade do código:

// Antes
function fn(x) {
var res = x + 1;
return res;
}

// Depois (melhorado pela IA)
const increment = (value: number): number => {
return value + 1;
};

3. Otimização de Desempenho

A IA identifica problemas de desempenho:

// Problema de desempenho
const results = data
.filter(item => item.active)
.map(item => transform(item))
.filter(item => item !== null);

// Otimização da IA
const results = data.reduce((acc, item) => {
if (item.active) {
const transformed = transform(item);
if (transformed !== null) {
acc.push(transformed);
}
}
return acc;
}, []);

Técnicas Avançadas de Depuração

1. Detecção de Vazamento de Memória

A IA ajuda a identificar vazamentos de memória:

// Detecção de vazamento de memória
class Component {
constructor() {
// Aviso da IA: Potencial vazamento de memória
window.addEventListener('resize', this.onResize);
}

// Sugestão da IA
cleanup() {
window.removeEventListener('resize', this.onResize);
}
}

2. Depuração Assíncrona

Depure operações assíncronas com IA:

// Depuração assíncrona
async function fetchData() {
try {
const response = await api.get('/data');
return response.data;
} catch (error) {
// A IA fornece tratamento de erro contextual
if (error.response?.status === 404) {
return [];
}
throw new Error(`Falha na busca de dados: ${error.message}`);
}
}

Integração com Ferramentas

1. Controle de Versão

A IA ajuda a depurar problemas relacionados ao git:

# Conflito do git
<<<<<<< HEAD
const config = { port: 3000 };
=======
const config = { port: 8080 };
>>>>>>> feature-branch

# Análise da IA
"""
Tipo de conflito: Valor de configuração
Recomendação: Usar variável de ambiente
Solução: const config = { port: process.env.PORT || 3000 };
"""

2. Testes

A IA auxilia na depuração de testes:

user.test.ts
describe('Autenticação de Usuário', () => {
it('deve validar credenciais de usuário', async () => {
// A IA sugere melhorias no teste
const result = await auth.validate(credentials);
expect(result).toBe(true);
// IA: Adicionar testes de casos extremos
// IA: Adicionar tratamento de timeout
});
});

Solução de Problemas com Depuração IA

Problemas Comuns

  1. IA Não Responde

    # Reiniciar sessão de depuração IA
    > ai.debug.reset()
  2. Sugestões Incorretas

    # Fornecer mais contexto
    > ai.debug.context.add(fileContent)
  3. Problemas de Desempenho

    # Otimizar análise da IA
    > ai.debug.optimize()

Dicas para Sucesso

  1. Fornecer Contexto Claro

    • Incluir código relevante
    • Descrever comportamento esperado
    • Compartilhar mensagens de erro
  2. Depuração Iterativa

    • Começar com casos simples
    • Adicionar complexidade gradualmente
    • Validar sugestões da IA
  3. Manter Documentação

    • Documentar problemas resolvidos
    • Acompanhar sugestões da IA
    • Compartilhar soluções
dica

Use ai.debug.explain() para obter explicações detalhadas das sugestões da IA!

Recursos Relacionados