La versión Ultimate de Visual Studio 2010 tiene una nueva característica IntelliTrace (rastreo inteligente) que se introdujo en Visual Studio para acelerar nuestra depuración de aplicaciones .NET. Realiza un seguimiento de eventos y métodos preestablecidos durante el proceso de ejecución y se pasa de manera efectiva al ejecutor de depuración. , transmitiendo así rápidamente el estado y diversa información del programa durante la ejecución para ayudar a los desarrolladores a depurar mejor el programa y encontrar problemas rápidamente. De hecho, antes de Visual Studio 2010, Microsoft Visual Stuido nos ayudó a heredar muy bien las herramientas de depuración, como monitorear variables, ver pilas, etc., y permitir establecer puntos de interrupción para la depuración en un solo paso, etc. Todo esto es muy útil para que los desarrolladores comprendan el estado del programa en diferentes procesos de ejecución y detecten de antemano si se está ejecutando de acuerdo con la lógica real. Además, podemos encontrar el problema monitoreando el estado del programa después de los puntos de interrupción. El problema con esto es que pueden ocurrir algunos errores lógicos antes de que se ejecute el punto de interrupción y es posible que no sean rastreables. Los desarrolladores deben detener la depuración actual, restablecer el punto de interrupción y comenzar la depuración, y este proceso experimental a menudo requiere muchas veces encontrar la ubicación correcta para establecer el punto de interrupción. IntelliTrace rastrea y muestra de manera inteligente y automática cierta información de depuración y el estado del programa a los desarrolladores, lo que reduce la necesidad de que los programadores encuentren puntos de interrupción apropiados para rastrear y monitorear el estado de ejecución del programa.
Visual Studio nos proporciona dos formas de controlar la fuente de contenido de información que recopila. Una es solo eventos de IntelliTrace, que solo recopila datos relacionados con eventos de rastreo inteligente y interrupciones de depuración, la otra son eventos de IntelliTrace e información de llamadas, que recopilarán datos en; Además de IntelliTrace Varios datos sobre la entrada y salida de una llamada a un método fuera de eventos. Echemos un vistazo a cómo configurar las opciones de seguimiento de IntelliTrace en Visual Studio 2010.
Vaya a Herramientas-->Opciones-->IntelliTrace. Está habilitado de forma predeterminada, sin embargo, solo captura eventos porque capturar eventos es económico. Sin embargo, cuando comienzas a rastrear toda esta información de llamadas, el valor real comienza a mostrarse. Cada vez que depure, aparecerá IntelliTrace. Puede utilizar esta herramienta de depuración histórica durante la depuración dinámica. Digamos que estoy allí y tengo un punto de interrupción, pero quiero hacer una copia de seguridad y rediseñar este punto de interrupción. Puedo usar IntelliTrace para realizar esta tarea.
Otras personas que hayan capturado sus procesos de depuración mediante IntelliTrace pueden enviarle las grabaciones y los archivos .dlls y pdbs, y usted puede reproducir sus procesos. El proceso puede ir a la base de datos (usted no tiene la base de datos), puede estar configurado de una manera que no puede copiar, puede estar en una red a la que no puede acceder, pero no No tienes que preocuparte porque tienes los registros y los archivos .dlls y pdbs que puedes reproducir.
Por supuesto, es mejor tener el código fuente, porque así podrás ver el código como si lo estuvieras depurando en tu propia máquina. Esto es genial para esos misteriosos fallos que funcionan bien en tu máquina pero no en las de otras personas. También es muy bueno para situaciones de subprocesos múltiples y, a medida que avanza en la aplicación, el problema del software desaparece, pero cuando se ejecuta a velocidad normal, el problema del software vuelve a aparecer.
De forma predeterminada, IntelliTrace solo recopila eventos relacionados con IntelliTrace. Esto es para mantener los datos recopilados pequeños y el impacto en el rendimiento es mínimo. Cuando elige recopilar también datos sobre llamadas a métodos, además del aumento en el espacio ocupado por los datos recopilados temporalmente, el impacto en el rendimiento también es mayor. Aunque los detalles recopilados varían, ambos métodos recopilan algunos datos comunes. Por ejemplo, siempre recopilará información del sistema cuando el proceso de recopilación se inicie por primera vez, eventos de carga y descarga de módulos, horas de inicio y finalización de subprocesos, etc. A medida que se producen eventos de módulos y subprocesos, la información de la ventana de depuración de módulos y subprocesos se puede actualizar correctamente. Además, en cualquier modo, los datos también se recopilarán en los puntos de interrupción de depuración, y los tipos y objetos de datos básicos recopilados se inspeccionarán y revisarán durante la depuración, y se permitirá cambiar sus valores.
En términos generales, el depurador IntelliTrace está hecho a medida para los desarrolladores de programas. A través de su función única de depuración histórica, proporciona a los desarrolladores una función de control del proceso de trazabilidad de arrepentimientos. Por ejemplo, ¿qué debo hacer si ocurrió una excepción hace 10 minutos en el programa durante el desarrollo? Si en el pasado generalmente se hacía llamando manualmente a la declaración Debug.Write, ¡ahora no es necesario! Debido a que las funciones de depuración histórica en muchas herramientas de desarrollo son muy similares, a través de IntelliTrace en la versión oficial de VS2010, los programadores no solo pueden ver el estado actual del programa, sino también verificar los eventos generados bajo ciertas circunstancias, e incluso aislar puntos de falla en historial de aplicaciones. Por lo tanto, después de habilitar la depuración histórica, la versión oficial de VS2010 puede capturar la pila de llamadas y las variables relacionadas. Podemos retroceder 10 minutos o más antes de que se guardara el programa para verificar diversas situaciones en las que ocurren excepciones y fallas en el programa. Debido a que, de forma predeterminada, el programa solo guarda tipos de claves, el desarrollador puede optar por registrar todos los parámetros, objetos y variables globales. Por lo tanto, IntelliTrace mostrará activamente eventos clave durante la ejecución del programa, como excepciones de código, acceso a archivos, depuración en tiempo real, etc.