Depurar la aplicación grabando la ejecución de código con IntelliTrace
Para pasar menos tiempo depurando la aplicación, registre y realice un seguimiento del historial de ejecución con IntelliTrace en Visual Studio Ultimate.De esta forma, los errores se encuentran más fácilmente sin tener que establecer varios puntos de interrupción porque IntelliTrace permite:
Registrar eventos específicos que se produjeron en la aplicación.
Esto permite examinar el código relacionado, los datos que aparecen en la ventana Locales durante los eventos del depurador y la información de llamadas de función, si decide realizar la recopilación.
Reducir el reinicio de la aplicación para volver a crear errores o eventos.
Depurar errores que son difíciles de reproducir o que se producen fuera de Visual Studio, por ejemplo, en producción u otros entornos.
El ejemplo siguiente muestra cómo grabar eventos que sirvan de ayuda para encontrar un error en el código:
Observe IntelliTrace en acción: Visual Studio Ultimate 2012: Recopilación y análisis de datos en un entorno de producción (vídeo de Channel 9).
¿Qué desea hacer?
Depurar la aplicación con IntelliTrace en Visual Studio:
|
|
Obtener datos de IntelliTrace durante una sesión de prueba en Test Manager |
|
Obtener datos de IntelliTrace de las aplicaciones que se ejecutan fuera de Visual Studio |
|
Iniciar la depuración de un archivo de registro de IntelliTrace (archivos .iTrace). |
Preguntas más frecuentes
¿Qué aplicaciones se pueden depurar con IntelliTrace?
¿Por qué realizar la depuración con IntelliTrace?
¿Qué datos recopila IntelliTrace?
¿IntelliTrace ralentizará la aplicación?
¿Qué aplicaciones se pueden depurar con IntelliTrace?
Compatible |
|
Se admite de forma limitada |
|
No compatible |
|
[!NOTA]
Si desea depurar un proceso que se está ejecutando, no puede usar IntelliTrace.Debe iniciar IntelliTrace cuando el proceso comienza.
¿Por qué realizar la depuración con IntelliTrace?
La depuración tradicional o activa solo muestra el estado actual de la aplicación con datos limitados sobre eventos pasados.Tiene que inferir estos eventos basándose en el estado actual de la aplicación o tiene que volver a crear estos eventos volviendo a ejecutar la aplicación.
IntelliTrace amplía esta experiencia de depuración tradicional al grabar eventos específicos y datos en estos puntos a tiempo.Esto permite ver lo que ha sucedido en la aplicación sin reiniciarla, especialmente si va más allá de donde está el error.IntelliTrace está activado de forma predeterminada durante la depuración tradicional y recopila datos de forma automática e invisible.Esto permite cambiar fácilmente entre depuración tradicional y depuración de IntelliTrace para ver la información registrada.Vea Grabar la ejecución de código con IntelliTrace para depurar en Visual Studio y ¿Qué datos recopila IntelliTrace?
IntelliTrace también puede ayudar en la depuración de errores que son difíciles de reproducir o que se producen fuera de Visual Studio.Puede obtener los datos de IntelliTrace y guardarlos en un archivo de registro de IntelliTrace (archivos .iTrace).Un archivo .iTrace contiene los detalles sobre las excepciones, los subprocesos, las solicitudes web, los datos de prueba, los módulos y más información del sistema.Puede abrir este archivo en Visual Studio Ultimate, seleccionar un elemento e iniciar la depuración con IntelliTrace.Esto permite ir a cualquier evento en el archivo y ver los detalles concretos sobre la aplicación en ese momento.
Puede guardar los datos de IntelliTrace desde estos orígenes:
Sesión de IntelliTrace en Visual Studio Ultimate
Sesión de pruebas en Microsoft Test Manager
Aplicaciones que se ejecutan fuera de Visual Studio, por ejemplo, en producción u otros entornos
Visual Studio 2012.1: Aplicaciones supervisadas por System Center 2012 Service Pack 1 (SP1) - Operations Manager con IntelliTrace Profiling Management Pack.Vea Cómo configurar la integración con IntelliTrace en System Center 2012.
Vea Depurar la aplicación con archivos de registro (.iTrace) de IntelliTrace.
A continuación se muestran algunos ejemplos de cómo IntelliTrace puede servir de ayuda en la depuración:
La aplicación ha dañado un archivo de datos, pero no se sabe dónde sucedió este evento.
Sin IntelliTrace, tiene que buscar en el código para encontrar todos los accesos posibles al archivo, colocar puntos de interrupción en esos accesos y volver a ejecutar la aplicación para encontrar el lugar dónde se produjo el problema.Con IntelliTrace, puede ver todos los eventos recopilados de acceso a archivos y detalles concretos sobre la aplicación cuando se produjo cada evento.
Se produce una excepción.
Sin IntelliTrace, se obtiene un mensaje sobre una excepción pero no se proporciona mucha información sobre los eventos que condujeron a la excepción.Puede examinar la pila de llamadas para ver la cadena de llamadas que condujeron hasta la excepción, pero no puede ver la secuencia de eventos que se produjeron durante esas llamadas.Con IntelliTrace, puede examinar los eventos que se produjeron antes de la excepción.
La aplicación se bloquea en un equipo de pruebas pero se ejecuta correctamente en un equipo de desarrollo.
Puede obtener los datos de IntelliTrace desde Microsoft Test Manager, guardar los datos en un archivo .iTrace y adjuntar este archivo a un elemento de trabajo de Team Foundation Server para investigación posterior.Vea Incluir información de seguimiento de diagnóstico con errores difíciles de reproducir y Depurar la aplicación con archivos de registro (.iTrace) de IntelliTrace.
Se produce un error o un bloqueo en la aplicación que se está ejecutando fuera de Visual Studio.
En aplicaciones basadas en Windows Azure, puede configurar la recolección de datos de IntelliTrace antes de publicar la aplicación.Mientras se ejecuta la aplicación, IntelliTrace guarda los datos en un archivo .iTrace.Vea Depurar servicios en nube publicados con IntelliTrace y Visual Studio.
En aplicaciones de escritorio administradas (.exe), las aplicaciones web ASP.NET hospedadas en IIS 7.0, 7.5 y 8.0, así como las aplicaciones SharePoint 2010, puede utilizar el recopilador independiente para guardar los datos de IntelliTrace a un archivo .iTrace.
Esto resulta útil cuando desea diagnosticar problemas con aplicaciones que se ejecutan en lugares donde no es conveniente cambiar la configuración del sistema, por ejemplo, en un entorno de producción.Puede instalar el recolector sin cambiar la configuración del sistema.Cuando haya recopilado los datos, simplemente elimine el recolector para desinstalarlo.Vea Recopilar datos de IntelliTrace fuera de Visual Studio con el recopilador independiente.
¿Qué datos recopila IntelliTrace?
Recopilar información de eventos
De forma predeterminada, IntelliTrace solo graba los eventos de IntelliTrace.Estos son eventos del depurador, excepciones, eventos de .NET Framework y otros eventos del sistema que pueden servir de ayuda en la depuración.Puede elegir las clases de eventos de IntelliTrace que desee recopilar, salvo los eventos del depurador y las excepciones, que siempre se recopilan.Vea Configurar la recopilación de IntelliTrace para depurar en Visual Studio.
Eventos del depurador
IntelliTrace graba siempre los eventos que se producen en el depurador de Visual Studio.Por ejemplo, iniciar la aplicación es un evento del depurador.Otros eventos del depurador son los eventos de parada, que hacen que la aplicación interrumpa la ejecución.Por ejemplo, el programa encuentra un punto de interrupción, alcanza un punto de seguimiento o se ejecuta un comando Paso.
Para ayudar a mejorar el rendimiento, IntelliTrace no registra cada valor posible para un evento del depurador.En su lugar, registra estos valores:
Valores en la ventana Variables locales.Mantenga abierta la ventana Variables locales para ver estos valores.
Valores en la ventana Automático solo si la ventana Automático está abierta.
Valores de información sobre datos que aparecen cuando mueve el puntero del mouse sobre una variable en la ventana de código fuente para ver su valor.IntelliTrace no obtiene valores de información sobre datos anclados.
Excepciones
IntelliTrace graba el tipo de excepción y el mensaje para estas clases de excepciones:
Excepciones controladas donde se produce y se detecta la excepción
Excepciones no controladas
Eventos de .NET Framework
De forma predeterminada, IntelliTrace graba los eventos más comunes de .NET Framework.Por ejemplo:
Para un evento Acceso al archivo, IntelliTrace recopila el nombre de archivo.
Para un evento Activar casilla, IntelliTrace recopila el estado y el texto de la casilla.
Visual Studio 2012.1: Eventos de aplicación de SharePoint 2010
Para las aplicaciones de SharePoint 2010 que se ejecutan fuera de Visual Studio, puede registrar y guardar determinados eventos de SharePoint en un archivo .iTrace mediante el recopilador independiente en Actualización 1 de Visual Studio 2012.
Al abrir el archivo .iTrace, puede especificar un identificador de correlación de SharePoint para buscar la solicitud web coincidente, ver los eventos registrados e iniciar la depuración desde un evento específico.Si el archivo contiene excepciones no controladas, puede elegir un identificador de correlación para empezar a depurar una excepción.Puede registrar los eventos de perfil de usuario y un subconjunto de eventos del sistema de registro unificado (ULS).
Vea:
Recopilar información de llamadas de función
Puede configurar IntelliTrace para recopilar información de llamadas de funciones.Esta información permite ver un historial de la pila de llamadas y permite ir hacia atrás y hacia delante a través de llamadas en el código.Para cada llamada de función, IntelliTrace graba estos datos:
Nombre de la función
Valores de los tipos de datos primitivos pasados como parámetros en los puntos de entrada de la función y devueltos en los puntos de salida de la función
Valores de propiedades automáticas cuando se leen o se cambian
Punteros a objetos secundarios de primer nivel, pero no sus valores distintos de NULL o no
[!NOTA]
IntelliTrace recopila solo los 256 primeros objetos en matrices y los primeros 256 caracteres para las cadenas.
Vea Configurar la recopilación de IntelliTrace para depurar en Visual Studio.
Obtener información de módulos
Para controlar cuánta información de llamadas debe recopilar IntelliTrace, especifique solo los módulos que le interesan.Esto puede ayudar a mejorar el rendimiento de la aplicación durante la recolección.Vea Configurar la recopilación de IntelliTrace para depurar en Visual Studio.
¿IntelliTrace ralentizará la aplicación?
De forma predeterminada, IntelliTrace solamente recopila datos para los eventos de IntelliTrace seleccionados.Esto puede o no ralentizar la aplicación, dependiendo de la estructura y organización del código.Por ejemplo, si IntelliTrace graba un evento a menudo, esto puede ralentizar la aplicación, pero podría también pedir que se considerara la refactorización de la aplicación.
Al recopilar información de llamadas se puede ralentizar la aplicación significativamente.Podría aumentar el tamaño de cualquier archivo de registro de IntelliTrace (archivos .iTrace) que esté guardando en el disco.Para minimizar estos efectos, recopile la información de llamadas solo para los módulos que le interesen.Para cambiar el tamaño máximo de los archivos .iTrace, vaya a Herramientas, Opciones, IntelliTrace, Avanzadas.Vea Configurar la recopilación de IntelliTrace para depurar en Visual Studio.
¿Dónde puedo obtener información?
Grabar la ejecución de código con IntelliTrace para depurar en Visual Studio
Configurar la recopilación de IntelliTrace para depurar en Visual Studio
Incluir información de seguimiento de diagnóstico con errores difíciles de reproducir
Recopilar datos de IntelliTrace fuera de Visual Studio con el recopilador independiente
Depurar la aplicación con archivos de registro (.iTrace) de IntelliTrace
Blogs
Visual Studio ALM + Team Foundation Server