ATENCIÓN: Este procedimiento OBLIGA a
tener licencia de Visual Studio 2010 Ultimate.
Como definición rápida (que
me perdonen los puristas) el IntelliTrace es una herramienta que permite llevar
un registro de todo lo que sucede con una aplicación, de forma que a
posteriori somos capaces de reproducir 'exactamente' lo que pasó en una sesión
concreta. La idea de esta herramienta es acabar con la mítica situación de "en
mi equipo funciona" ¿quién no la ha utilizado alguna vez? Para una definición
más exacta podemos visitar este enlace.
Una de las particularidades
de esta herramienta es que sólamente está disponible de forma directa desde
Visual Studio 2010 Ultimate, y se activa o desactiva a nivel general desde las
opciones del producto:
Bueno, como 'reza' el título de este post, esto no es estrictamente necesario, de forma que podemos utilizar también esta herramienta en equipos en los que no está instalado Visual Studio (ojo porque lo que no está permitido es utilizar esta herramienta en un entorno de producción.
Vamos al 'turrón' ¿Cómo
utilizamos esta maravilla sin Visual Studio?
-
Creamos una carpeta en una ubicación temporal y la llamamos (originales nosotros) IntelliTrace.
-
En esta carpeta copiamos el contenido de la carpeta "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\TraceDebugger Tools"
-
A continuación copiamos el archivo "Microsoft.VisualStudio.IntelliTrace.dll" que está en la carpeta "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies"
-
Por último copiamos el archivo "TraceLogProfiler.dll" que está en la carpeta "C:\Program Files (x86)\Common Files\Microsoft Shared\VSTS 10.0\Trace Debugger"
-
Ahora viene una parte 'chunga'. tenemos que obtener lo que se denomina como "CollectionPlan" que es un archivo de configuración que se genera al utilizar IntelliTrace desde Visual Studio. Para obtener este archivo, tenemos que activar el IntelliTrace (captura anterior) y configurar en esas mismas opciones el nivel de traza deseado. Cargamos un proyecto, y vamos a la carpeta "C:\Users\usuario\AppData\Local\Microsoft\VisualStudio\10.0\TraceDebugger\Settings" aquí veremos un archivo de nombre variable, que copiaremos también a la carpeta temporal y renombraremos a algo más claro, como por ejemplo "Collector.xml".
-
Editamos este archivo con el bloc de notas, y nos aseguramos de que en las entradas "LogFileDirectory" y "DeleteLogOnExit" están configuradas de manera adecuada (ojo porque el primer parámetro puede tener que ser cambiado en la máquina en la que queremos ejecutar el IntelliTrace:
Para más información acerca de este archivo, visitar el siguiente enlace.
Una vez hemos realizado
estas operaciones, el contenido de nuestra carpeta temporal será algo parecido a
esto:
Ya tenemos todo preparado
para hacer la traza... Sólo queda coger esa carpeta y llevarla a la máquina en
la que queremos sacar la traza, y ejecutar la herramienta desde la línea de
comandos:
IntelliTrace.exe launch
/cp:Collector.xml rutadelprogramaatrazar\programa.exe
Cuando el ejecutable
termine, tendremos en la carpeta del IntelliTrace un archivo con extensión
.iTrace, que contiene toda la información de la ejecución. Este archivo ya
podemos abrirlo con Visual Studio 2010 y ahora disponemos de una 'grabación' de
lo que ha pasado en la ejecución (fundamental para detectar errores)
NOTAS:
Aunque venga con Visual
Studio 2010, esta herramienta NO necesita el Framework 4.0 y en
principio es capaz de sacar trazas de programas desarrollados desd ela versión
2.0 del Framework en adelante.
En el equipo destino puede
producirse un error al lanzar el programa, que se ve cuando al abrir el archivo
de traza está vacío... Una de las causas que he visto es porque el componente
"TraceLogProfiler.dll" no esté registrado en la máquina, si se da el caso, basta
con ejecutar un regsvr32 TraceLogProfiler.dll
En la versión de 2010, sólamente podemos realizar trazas sobre programas compilados en 32 bits, pero instalando el Service Pack 1 en principio esta limitación ya no existe, si bien yo no he podido probarlo.
Sin embargo, sí puedo confirmar que modificando el valor de la entrada "AttachOptions" del archivo Collector.xml a Attach64Bit, el intellitrace funciona con un programa ejecutándose en 64 bits!
En la versión de 2010, sólamente podemos realizar trazas sobre programas compilados en 32 bits, pero instalando el Service Pack 1 en principio esta limitación ya no existe, si bien yo no he podido probarlo.
Sin embargo, sí puedo confirmar que modificando el valor de la entrada "AttachOptions" del archivo Collector.xml a Attach64Bit, el intellitrace funciona con un programa ejecutándose en 64 bits!
RESULTADO
A modo informativo, así es
como se ve una traza de este estilo:
REFERENCIAS
Esta información ha sido recopilada partiendo de las siguientes entradas:
http://www.techmetadata.com/2010/04/standalone-intellitrace-from-vs-2010.html
Además más información en castellano en el blog del gran Unai Zorrilla, acceso
Además más información en castellano en el blog del gran Unai Zorrilla, acceso
No hay comentarios:
Publicar un comentario