Compartir a través de


Depurar la aplicación grabando la ejecución de código con IntelliTrace

Emplee menos tiempo depurando su aplicación en Visual Studio Ultimate al utilizar IntelliTrace para registrar y realizar un seguimiento del historial de ejecución del código. Podrá encontrar los errores más fácilmente sin tener que establecer varios puntos de interrupción, ya que IntelliTrace permite:

  • Registrar eventos específicos que se produjeron en la aplicación.

    Puede examinar el código relacionado, los datos que aparecen en la ventana Expresiones locales durante los eventos del depurador y la información de llamadas de función, si eligió recopilar esta información.

  • Reducir el reinicio de la aplicación para recrear errores o eventos.

  • Depurar errores que son difíciles de reproducir o que se producen en la implementación.

A continuación se explica cómo el registro de eventos puede ayudarle a encontrar un error en su código:

Solo eventos de IntelliTrace: flujo de alto nivel

¿Qué desea hacer?

Depurar la aplicación con IntelliTrace en Visual Studio:

  • Deseo ver los últimos eventos.

  • Deseo ver la información de llamadas con eventos anteriores.

  • Guardar mi sesión de IntelliTrace.

  • Controlar los datos que IntelliTrace recopila.

Recopilar datos de IntelliTrace durante una sesión de prueba en Test Manager

Recopilar datos de IntelliTrace de aplicaciones en implementación

Iniciar la depuración de un archivo de registro de IntelliTrace (archivo .iTrace).

Preguntas más frecuentes

  • ¿Qué aplicaciones se pueden depurar con IntelliTrace?

  • ¿Por qué realizar la depuración con IntelliTrace?

  • ¿Qué datos recopila IntelliTrace?

  • ¿Ralentizará IntelliTrace la aplicación?

¿Qué aplicaciones se pueden depurar con IntelliTrace?

Compatible

Compatibilidad limitada

  • Aplicaciones de F# en modo experimental

  • Aplicaciones de la Tienda Windows admitidas solo para eventos

No compatibles

  • C++, otros lenguajes y script

  • Servicios de Windows, Silverlight, Xbox o aplicaciones de Windows Mobile

Nota

Si desea depurar un proceso que se está ejecutando, no puede usar IntelliTrace.Debe iniciar IntelliTrace cuando comience el proceso.

¿Por qué realizar la depuración con IntelliTrace?

La depuración tradicional o dinámica 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 ejecutando de nuevo la aplicación.

IntelliTrace amplía esta experiencia de depuración tradicional al registrar eventos y datos específicos en estos puntos en el tiempo. Esto le permite ver lo que ha sucedido en la aplicación sin reiniciarla, especialmente si se encuentra 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 la depuración tradicional y la depuración de IntelliTrace para ver la información registrada. Vea Grabar la ejecución de código con IntelliTrace durante la depuración 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 en la implementación. Puede recopilar datos de IntelliTrace y guardarlos en un archivo de registro de IntelliTrace (archivo .iTrace). Un archivo .iTrace contiene detalles sobre excepciones, eventos de rendimiento, solicitudes web, datos de prueba, subprocesos, módulos y otra información del sistema. Puede abrir este archivo en Visual Studio Ultimate, seleccionar un elemento e iniciar la depuración con IntelliTrace. De esta forma, podrá acceder a cualquier evento del archivo y ver detalles concretos sobre la aplicación en ese punto en el tiempo.

Puede guardar datos de IntelliTrace de estos orígenes:

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 se produjo 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 donde se produjo el problema. Con IntelliTrace, puede ver todos los eventos de acceso a archivos recopilados y detalles concretos sobre la aplicación cuando se produjo cada evento.

  • Se produce una excepción.

    Sin IntelliTrace, aparece un mensaje sobre la excepción, pero no se proporciona mucha información sobre los eventos que produjeron la excepción. Puede examinar la pila de llamadas para ver la cadena de llamadas que produjeron 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 prueba pero se ejecuta correctamente en un equipo de desarrollo.

    Puede recopilar 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 analizarlo más adelante. Vea Recopilar más datos de diagnóstico en las pruebas manuales y Depurar la aplicación con datos guardados de IntelliTrace.

  • Se produce un error o un bloqueo en una aplicación que se ejecuta en la implementación.

    En aplicaciones basadas en Microsoft Azure, puede configurar la recopilació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 con IntelliTrace y Visual Studio un servicio en la nube publicado.

    Para las aplicaciones web ASP.NET hospedadas en IIS 7.0, 7.5, y 8.0, y las aplicaciones de SharePoint 2010 o SharePoint 2013, utilice Microsoft Monitoring Agent, solo o con System Center 2012, para guardar los datos de IntelliTrace en un archivo .iTrace.

    Esto es útil cuando desea diagnosticar problemas con aplicaciones en fase de implementación. Vea Recopilar datos de diagnóstico en producción mediante el recolector independiente IntelliTrace.

¿Qué datos recopila IntelliTrace?

Recopilación de información de eventos

De forma predeterminada, IntelliTrace solo registra 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. Consulta Configurar IntelliTrace para recopilar información de depuración.

  • Eventos de depurador

    IntelliTrace registra 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 de un evento del depurador. En su lugar, registra estos valores:

    • Valores de la ventana Expresiones locales. Mantenga abierta la ventana Expresiones locales para ver estos valores.

    • Valores de 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 recopila los valores de las informaciones sobre datos ancladas.

  • Excepciones

    IntelliTrace registra el tipo y el mensaje de excepción de estas clases de excepciones:

    • Excepciones controladas en las que la excepción se inicia y se detecta

    • Excepciones no controladas

  • Eventos de .NET Framework

    De forma predeterminada, IntelliTrace registra los eventos más comunes de .NET Framework. Por ejemplo:

    • En el caso de un evento de acceso a archivo, IntelliTrace recopila el nombre de archivo.

    • Para un evento de activar casilla, IntelliTrace recopila el estado y el texto de la casilla.

  • Eventos de aplicación de SharePoint 2010 y SharePoint 2013

    Puede registrar eventos de perfil de usuario y un subconjunto de eventos del sistema de registro unificado (ULS) para las aplicaciones de SharePoint 2010 y 2013 que se ejecutan fuera de Visual Studio. Puede guardar estos eventos en un archivo .iTrace. Requiere Visual Studio Ultimate 2013 o Microsoft Monitoring Agent ejecutándose en el modo Seguimiento.

    Al abrir el archivo .iTrace, especifique 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.

    Vea:

Recopilación de información de llamadas de función

Puede configurar IntelliTrace para recopilar información de llamadas de las funciones. Esta información permite ver un historial de la pila de llamadas y retroceder y avanzar por las llamadas en el código. Para cada llamada de función, IntelliTrace registra 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 estas se leen o se cambian

  • Punteros a objetos secundarios de primer nivel, pero no sus valores, salvo sin son null o no

Nota

IntelliTrace recopila solo los primeros 256 objetos en matrices y los primeros 256 caracteres de las cadenas.

Consulta Configurar IntelliTrace para recopilar información de depuración.

Recopilación de 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 IntelliTrace para recopilar información de depuración.

¿Ralentizará IntelliTrace 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 registra un evento con frecuencia, esto podría ralentizar la aplicación, pero también podría ser una indicación de que debe refactorizar la aplicación.

La recopilación de la información de llamadas podría ralentizar considerablemente la aplicación. También podría aumentar el tamaño de los archivos de registro de IntelliTrace (archivos .iTrace) guardados en disco. Para reducir 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 IntelliTrace para recopilar información de depuración.

¿Dónde puedo obtener más información?

Grabar la ejecución de código con IntelliTrace durante la depuración

Configurar IntelliTrace para recopilar información de depuración

Incluir información de seguimiento de diagnóstico con errores difíciles de reproducir

Configurar la versión para diagnosticar problemas después de la implementación

Depurar la aplicación con datos guardados de IntelliTrace

Blogs

Visual Studio ALM + Team Foundation Server

Foros

Diagnósticos de Visual Studio

Guía

Pruebas para la distribución continua con Visual Studio 2012 – Capítulo 6: Cuadro de herramientas de pruebas