
En informática, un error es un fallo en el diseño (o ejecución) de un programa informático (o aplicación, software, etc.) que provoca su mal funcionamiento.
Un depurador es un programa informático que ayuda a un desarrollador a analizar los errores de un programa. Para ello, ejecuta el programa paso a paso, muestra el valor de las variables en todo momento y establece puntos de interrupción en condiciones o líneas del programa. Es la aplicación en la programación informática del proceso de localización de fallos, es decir, un proceso de solución de problemas, de resolución lógica y sistemática de estos.
Algunos errores son fáciles de localizar. No voy a insistir en ellos.
Hay un viejo dicho que dice que la teoría es cuando lo entiendes todo, pero nada funciona; la práctica es cuando no entiendes nada, pero todo funciona. Pero a veces la teoría y la práctica se encuentran: nada funciona y nadie sabe por qué. Cuando esto ocurre, conviene recordar algunas técnicas eficaces que pueden llegar a la raíz del problema y mostrar los detalles. A lo largo del tiempo, he aquí las tres tácticas que han demostrado ser especialmente útiles a la hora de depurar con Visual Studio:
1. Tratamiento de excepciones relevantes en la ventana «Parámetros de excepción».
Una excepción indica una condición de error que ocurre mientras se ejecuta un programa. Es importante proporcionar manejadores que respondan a las excepciones más importantes, pero también es fundamental saber cómo configurar el depurador para que se detenga en las excepciones que se desean mostrar. Para ello, puede utilizar la ventana «Configuración de excepciones» y especificar qué excepciones (o conjuntos de excepciones) harán que el depurador se detenga y en qué punto desea que se detenga. Puede añadir o eliminar excepciones, o especificar en qué excepciones se detendrá. Abra esta ventana cuando una solución esté abierta haciendo clic en «Depurar» > «Ventanas» > «Configuración de excepciones».
Puede encontrar excepciones específicas utilizando la ventana «Buscar» de la barra de herramientas de la «Configuración de excepciones» o filtrando con la función de búsqueda por espacios de nombres específicos (por ejemplo, System.IO). El depurador puede interrumpir la ejecución en el punto donde se lanza una excepción, lo que le permite examinar la excepción antes de que se llame a un manejador.
En la ventana «Configuración de excepciones», despliegue el nodo de una categoría de excepciones (por ejemplo, Common Language Runtime Exceptions, es decir, excepciones .NET) y, a continuación, marque la casilla correspondiente a una excepción específica de esa categoría (por ejemplo, System.AccessViolationException). También puede seleccionar una categoría completa de excepciones.

2.No "sólo mi código"
Por defecto, el depurador de Visual Studio solo se detiene en las excepciones generadas por el código de usuario, saltándose así las llamadas externas, es decir, las llamadas al sistema y a la infraestructura. La función que activa o desactiva estecomportamiento se denomina « Solo mi código». Dependiendo de lo que estés depurando, puede que quieras considerarlo desactivado, ya que el origen o la descripción del problema podría estar fuera de «tu» código.
Para desactivar (o activar) esta función, selecciona Herramientas > Opciones en Visual Studio. Usando el comando Depuración > General, cancele (o seleccione) strong>Activar «Solo mi código».

3. Herramientas recomendadas para rastrear y registrar errores
A veces es necesario registrar y analizar todos los detalles de los errores, eventos y conjuntos de excepciones internas: este seguimiento implica el uso especializado del registro, normalmente con fines de depuración. Se trata del historial, es decir, el registro secuencial en un archivo o base de datos de todos los eventos que afectan a un proceso concreto. Estas son mis herramientas favoritas para el registro y seguimiento:
- Systems.Diagnostics
- Microsoft Entreprise Library
- NLog
- Elmah
- Log4net
Y ya está.