Normalmente no uso un depurador, tal vez una vez cada dos semanas, pero no es lo primero que hago.
La herramienta más importante en mi trabajo es tan omnipresente que casi me olvido de mencionarla: los rastros de la pila. Más del 90% de los problemas que encuentro pueden resolverse mediante el examen de un seguimiento de la pila. Esta herramienta no siempre es muy útil dependiendo de su idioma, pero cuando se implementan bien por un idioma, pueden ahorrarle una cantidad increíble de tiempo.
Supongo que la segunda forma más común de detectar problemas simples es que probablemente sea el código que acabo de cambiar. Realizo pruebas unitarias con bastante frecuencia, así que generalmente sé lo que acabo de romper.
Para un desarrollo y depuración más complejos, podría agregar algunas declaraciones de registro de nivel de depuración o rastreo. Considero que los problemas de desarrollo son una buena guía para ayudarme a ubicar la información de registro de rastreo / depuración de producción, lo que me lleva a:
No siempre tiene un depurador a mano. En producción, podría ser imposible ejecutar un depurador (Demonios, podría ser imposible acceder a las máquinas de producción, excepto los registros, según la seguridad de su empresa). También hay idiomas en los que conectar un depurador lleva demasiado tiempo o tal vez simplemente no hay buenos depuradores disponibles.
Si ha estado codificando todo el tiempo utilizando la lógica y el registro de nivel de depuración / rastreo, simplemente puede ser el caso de examinar sus excelentes declaraciones de registro (posiblemente aumentando el nivel de registro) para resolver el problema sin siquiera acceder al hardware.
Aunque creo que los depuradores son una herramienta poderosa, ¡no dejes que sean la única herramienta en tu caja de herramientas!