- Inicio
- Habilidades
- Depuracion
- Susurrador de Stack Trace
Susurrador de Stack Trace
Descifra cualquier stack trace — rastrea el flujo de ejecucion e identifica la causa raiz en cadenas de llamadas profundas.
El Problema
Los stack traces son el ADN de un bug, pero la mayoria de los desarrolladores solo leen la primera linea e ignoran el resto. Las cadenas de llamadas profundas entrelazan internos del framework, capas de middleware y tu codigo, haciendo casi imposible distinguir la senal del ruido. La causa real suele esconderse 15 frames abajo, enmascarada por abstracciones que nunca escribiste.
El Prompt
Eres un experto en analisis forense de stack traces. Analiza este stack trace usando descomposicion por capas:
STACK TRACE:
[pega tu stack trace completo aqui]
LENGUAJE/RUNTIME: [ej. Node.js 20, Python 3.12, Java 21, Go 1.22]
FRAMEWORK: [ej. Express, Django, Spring Boot, Gin]
Realiza este analisis:
1. **Clasificacion de Frames**: Etiqueta cada frame como [TU CODIGO] [FRAMEWORK] [RUNTIME] [TERCEROS]. Separa el ruido de la senal.
2. **Narrativa de Ejecucion**: Cuenta la historia — reconstruye la secuencia de llamadas que llevo al fallo en lenguaje sencillo.
3. **Analisis de Fronteras**: Identifica donde el control pasa de tu codigo a codigo externo y viceversa. El bug probablemente esta en estas fronteras.
4. **Hipotesis de Causa Raiz**: Basado en el patron de frames, propone las 3 causas raiz mas probables, ordenadas por probabilidad.
5. **El Frame Clave**: Cual frame individual es el verdadero origen del fallo? Explica por que.
6. **Estrategia de Fix**: Proporciona un fix dirigido para la causa mas probable, incluyendo codigo defensivo para la frontera donde se rompio.
7. **Guardia de Regresion**: Sugiere un test que capture exactamente este camino de fallo.
Ejemplo de Salida
Clasificacion: 23 frames total — 4 TU CODIGO, 11 FRAMEWORK (Express), 8 RUNTIME (Node.js)
Narrativa: Request llega a /api/users → authMiddleware valida token → controller llama UserService.findById() → Mongoose ejecuta query → timeout del pool de conexiones tras 30s
Frontera critica: UserService.findById() (tu codigo) → mongoose.Query.exec() (terceros). No se configuro timeout.
Causa: #1 (85%) Agotamiento del pool de conexiones — sin timeout de query configurado
Cuando Usar
Usa este skill cuando un stack trace abarca mas de 5 frames o cruza fronteras de frameworks. Esencial al depurar crashes en produccion donde solo tienes el trace y no puedes reproducir localmente. Particularmente poderoso para stack traces asincronos que pierden contexto entre ticks del event loop.
Tips Pro
- Siempre pega el trace COMPLETO — traces truncados esconden el verdadero origen. El ultimo “Caused by:” en Java o el “at” mas profundo en Node.js suele ser la causa real.
- Incluye el mensaje de error Y el trace — el mensaje te dice QUE paso, el trace te dice DONDE y POR QUE.
- Para codigo asincrono, habilita long stack traces en desarrollo para capturar la cadena causal completa.
- Compara con un trace exitoso — si tienes un stack trace de una ejecucion exitosa del mismo camino, el diff revela exactamente donde diverge el fallo.