---
description: "Analyse les erreurs serveur en lisant les logs Acorn / nginx"
argument-hint: "(optionnel) message d'erreur ou classe d'exception"
---

# /debug — Analyse d'erreur

Analyse les logs pour diagnostiquer les erreurs serveur (500, exceptions PHP, erreurs Blade).
**Mode lecture seule** : ne corrige rien, propose uniquement un diagnostic et des suggestions.

## Étapes

### 1. Lire les dernières erreurs

Tenter d'abord les logs Acorn (si le thème utilise Acorn) :

```bash
ddev exec tail -n 200 web/app/cache/acorn/logs/laravel.log 2>/dev/null
```

Sinon ou en complément, les logs nginx :

```bash
ddev exec tail -n 100 /var/log/nginx/error.log 2>/dev/null || true
```

Et les logs PHP :

```bash
ddev exec tail -n 100 /var/log/php-fpm.log 2>/dev/null || true
```

Filtrer pour ne garder que les entrées récentes (dernières 5 minutes ou dernier bloc d'erreur complet).

### 2. Recherche ciblée (si argument fourni)

Si `$ARGUMENTS` est fourni, chercher spécifiquement cette chaîne dans les logs :

```bash
ddev exec grep -n "$ARGUMENTS" web/app/cache/acorn/logs/laravel.log 2>/dev/null | tail -n 20
ddev exec grep -n "$ARGUMENTS" /var/log/nginx/error.log 2>/dev/null | tail -n 20
```

Puis extraire le bloc d'erreur complet autour des correspondances.

### 3. Analyser l'erreur

Pour chaque erreur identifiée :

1. **Identifier la classe d'exception** : `ViewException`, `ErrorException`, `BadMethodCallException`, etc.
2. **Extraire le fichier et la ligne d'origine** depuis la stack trace
3. **Lire le fichier source** à la ligne indiquée avec le contexte environnant (10 lignes avant/après)
4. **Remonter la chaîne** si nécessaire :
   - Si l'erreur vient d'un template Blade compilé (`storage/framework/views/`), retrouver le template source
   - Si l'erreur vient d'un View Composer, lire aussi le template Blade associé
   - Si l'erreur vient d'un Blade Component, lire le template et la classe PHP

### 4. Produire le rapport

```markdown
## Diagnostic

**Erreur :** <classe d'exception> — <message>
**Fichier :** <chemin:ligne>
**Contexte :** <explication de ce qui se passe>

### Cause probable
<analyse détaillée de la cause racine>

### Correction suggérée
<proposition concrète avec snippet de code — ne PAS appliquer>

### Fichiers concernés
- `chemin/fichier.php:ligne`
- `chemin/template.blade.php:ligne`
```

### 5. Ne pas corriger

**Important :** Ne pas modifier de fichiers. Uniquement analyser et proposer.
L'utilisateur décidera s'il applique la correction suggérée.
