Utilidad de línea de comandos Visualizador de simultaneidad (CVCollectionCmd)
Se puede utilizar el servicio de línea de comandos del Visualizador de simultaneidad (CVCollectionCmd.exe) para recopilar y procesar los seguimientos en los equipos que no tengan Visual Studio.Se pueden abrir los seguimientos recopilados en un equipo que tiene Visual Studio de manera que los pueda ver en el Visualizador de simultaneidad
Instalación e implementación del servicio
Para instalar desde un DVD de Visual Studio
En el DVD, busque la carpeta superior denominada "Visualizador de simultaneidad".
En esta carpeta, ejecute concvi_standalonecollection.exe.
Para instalar desde un archivo de instalación web de Visual Studio
Busque el archivo de instalación que se ha descargado.El nombre de archivo depende de la versión de Visual Studio que se ha descargado.
Abra una ventana de comando del sistema y vaya al directorio donde se encuentra el archivo de instalación.
Ejecute el comando <install file>/layout, donde install file es el nombre del archivo que se ha descargado.El comando de diseño crea una carpeta denominada "Visualizador de simultaneidad".
En la carpeta "Visualizador de simultaneidad", ejecute concvi_standalonecollection.exe.
Para implementarlo en un equipo que no tenga Visual Studio
Busque concvi_standalonecollection.exe en un equipo con Visual Studio.(Vea los dos procedimientos anteriores).
Copie concvi_standalonecollection.exe en el equipo que no tiene Visual Studio.
Ejecute concvi_standalonecollection.exe.
Comandos y parámetros
Se puede obtener ayuda en estos comandos y parámetros mediante:
CvCollectionCmd /?
Opción |
Descripción |
Parámetros |
valores devueltos |
---|---|---|---|
Consulta |
Devuelve si la colección se puede iniciar. |
None |
0 si la colección está lista para empezar. 1 si la colección ya está en curso. 2 si la colección no está en progreso, pero uno o más de los ETW de sesiones requeridos ya están habilitados. |
Iniciar |
Ejecute el proceso especificado en el Visualizador de simultaneidad. |
Ruta de acceso completa del ejecutable. |
0 si la ejecución se realizó correctamente. 1 si la ejecución falló porque no se pudo iniciar la aplicación de destino. 13 si la ejecución falló porque CVCollectionCmd no tiene permisos suficientes para escribir en el directorio de resultados especificado. |
Asociar |
Comienza obteniendo un seguimiento que abarca todo el sistema; si no, se asocia a un proceso, si se ha especificado uno. |
Ninguno. |
0 si los datos adjuntos se completan correctamente. 1 si fallaron los datos adjuntos porque el proceso especificado no es válido o ambiguo. 13 si fallaron los datos adjuntos porque CVCollectionCmd no tiene permisos suficientes para escribir en el directorio de salida especificado. |
Desasociar |
Detiene la recolección. |
Ninguno. |
0 si la desasociación se realizó correctamente. 1 si la desasociación falló porque la colección no está actualmente en curso. 2 si la desasociación falló porque no se pudo detener la colección. |
Analyze |
Analiza el seguimiento especificado. |
La ruta de acceso completa del archivo CVTrace. |
0 si el análisis se realizó correctamente. 1 si el análisis no se puede iniciar porque el seguimiento especificado abarca todo el sistema, pero ningún proceso de destino se ha especificado. 2 si el análisis no se puede iniciar porque el seguimiento no abarca todo el sistema y un proceso se ha especificado. 3 si el análisis falló debido a que el proceso especificado no es válido. 4 si el análisis falló porque el archivo CVTrace especificado no es válido. |
LaunchArgs |
Especifica los argumentos ejecutables de destino.Esta opción se aplica sólo al comando de lanzamiento. |
Argumentos de línea de comandos para la aplicación. |
Ninguno. |
OutDir |
Especifica el directorio en el que se van a guardar los archivos de seguimiento.Se aplica a los comandos Iniciar y Adjuntar. |
Una ruta de acceso de directorio o la ruta de acceso relativa. |
Ninguno. |
Proceso |
Especifica el proceso para asociar cuándo se ejecuta el comando Asociar, o el proceso en un seguimiento para analizar cuándo se ejecuta el comando Analizar.Se aplica a los comandos Adjuntar y Analizar. |
El PID o el nombre del proceso. |
Ninguno. |
Config |
Especifica la ruta de acceso del archivo de configuración, si desea que la configuración de la colección sea distinta de los valores predeterminados.Se aplica a los comandos Lanzar, Adjuntar y Analizar. |
La ruta del directorio o la ruta de acceso relativa al archivo de configuración XML. |
Ninguno. |
Personalizar opciones de configuración
Si se utiliza CVCollectionCmd para recopilar seguimientos y se desea personalizar la configuración de la colección, utilice un archivo de configuración para especificarlos.
[!NOTA]
Cuando se utiliza Visual Studio para recopilar los seguimientos, no modifique directamente el archivo de configuración.En su lugar, utilice el cuadro de diálogo Configuración avanzada para modificar la configuración.
Para modificar la configuración de la colección, cree un archivo de configuración en el equipo donde se ejecutará la utilidad CVCollectionCmd.Se puede crear el archivo de configuración desde el principio, o se puede copiar el archivo de configuración en el equipo que tiene Visual Studio instalado y modificarlo.El archivo se denomina UserConfig.xml y se encuentra en la carpeta Local AppData.Cuando se ejecuta el servicio, utilice la opción de configuración junto con los comandos Lanzar, Adjuntar o Analizar.En el parámetro asociado a la opción de configuración, especifique la ruta de acceso del archivo de configuración.
Etiquetas de archivo de configuración
El archivo de configuración está basado en XML.Aquí estan los valores y las etiquetas válidas:
Tag |
Descripción |
Valores |
---|---|---|
Config |
Delimite el archivo de configuración global. |
Debe contener estos elementos:
|
MajorVersion |
Especifica la versión principal del archivo config. |
Debe ser 1 para los proyectos Visual Studio 2012 .Si no es 1, la utilidad no funcionará. |
MinorVersion |
Especifica la versión secundaria del archivo config. |
Debe ser 0 para los proyectos Visual Studio 2012 .Si no es 0, la utilidad no funcionará. |
IncludeEnvSymbolPath |
Establece un valor que determine si se utiliza la ruta de acceso del símbolo de entorno (_NT_SYMBOL_PATH como). |
|
DeleteEtlsAfterAnalysis |
Establece un valor que determina si los archivos ETL se eliminan cuando finaliza el análisis. |
|
SymbolPath |
Especifica la ruta de acceso del servidor de símbolos.Para obtener más información, consulte Utilizar el servidor de símbolos de Microsoft para obtener los archivos de símbolos de depuración. |
Un nombre de directorio o la dirección URL. |
Markers |
Contiene la lista de proveedores de marcadores. |
Puede contener cero o más elementos MarkerProvider. |
MarkerProvider |
Especifica un proveedor de marcador único. |
Debe contener estos elementos:
Puede contener estos elementos:
|
Nivel |
Establece el nivel de importancia de un MarkerProvider. |
|
Guid |
El identificador único global del proveedor de marcador ETW. |
GUID. |
Nombre |
Especifica la descripción del proveedor del marcador. |
Una cadena. |
Categorías |
Especifica las categorías recopiladas por el proveedor de marcador. |
Una cadena de números o rangos de números delimitada por comas. |
IsEnabled |
Establece un valor que determine si el proveedor de marcador está habilitado para la colección. |
|
FilterConfig |
Especifica la lista de opciones de configuración de los eventos ETW que se filtran de la colección. |
Puede contener estos elementos:
|
CollectClrEvents |
Establecer un valor que determine si se recopilan eventos CLR. |
|
ClrCollectionOptions |
Especifica si se van a recopilar eventos CLR para aplicaciones nativas y si se van a recopilar eventos de detención de NGEN. |
Puede contener uno, ambos o ninguno de estos valores:
|
CollectSampleEvents |
Establece un valor que determina si se recopilan eventos de ejemplo. |
|
CollectGpuEvents |
Establece un valor que determina si se recopilan los eventos generados por DX. |
|
CollectFileIO |
Establece un valor que determina si se recopilan eventos de E/S de archivos. |
|
UserBufferSettings |
Especifica la lista de parámetros de la configuración del búfer del usuario. |
Debe contener estos elementos:
|
KernelBufferSettings |
Especifica la lista de parámetros del búfer del Kernel. |
Debe contener estos elementos:
|
BufferFlushTimer |
Especifica el temporizador de vaciado de los búferes ETW. |
Entero positivo. |
BufferSize |
Cantidad de memoria que se asigna para cada búfer de la sesión de seguimiento de eventos, en kilobytes. |
Un número entre 0 y 1024. |
MinimumBuffers |
El número de búferes mínimo que se asignan para el grupo de búferes de la sesión de seguimiento de eventos. |
Un entero positivo mayor o igual al doble del número de núcleos lógicos. |
MaximumBuffers |
Número de búferes máximo que se asignan para el grupo de búferes de la sesión de seguimiento de eventos. |
Un número mayor o igual a MinimumBuffers. |
JustMyCode |
Especifica la lista de directorios de Sólo mi código. |
Una lista de cero o más elementos de MyCodeDirectory. |
MyCodeDirectory |
Especifica un directorio que contenga el código. |
Una ruta de acceso absoluta. |
Ejemplo
En lugar de crear un archivo de configuración desde el principio, se puede copiar el ejemplo siguiente y. a continuación, modificarlo para satisfacer los requisitos.
<?xml version="1.0"?>
<LocalConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MajorVersion="1" MinorVersion="0">
<IncludeEnvSymbolPath>true</IncludeEnvSymbolPath>
<DeleteEtlsAfterAnalysis>true</DeleteEtlsAfterAnalysis>
<TraceLocation>C:\traces</TraceLocation>
<SymbolPath>http://symweb</SymbolPath>
<Markers>
<MarkerProvider Name="Default" Guid="8d4925ab-505a-483b-a7e0-6f824a07a6f0" Level="Low" />
<MarkerProvider Name="TPL" Guid="2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5" Level="Normal" />
<MarkerProvider Name="TPL Dataflow" Guid="16f53577-e41d-43d4-b47e-c17025bf4025" Level="Normal" />
<MarkerProvider Name="TPL Synchronization" Guid="ec631d38-466b-4290-9306-834971ba0217" Level="Normal" />
<MarkerProvider Name="PLINQ" Guid="159eeeec-4a14-4418-a8fe-faabcd987887" Level="Normal" />
<MarkerProvider Name="Concurrency Runtime" Guid="f7b697a3-4db5-4d3b-be71-c4d284e6592f" Level="Normal" />
<MarkerProvider Name="Scenario Markers" Guid="fb9244c9-f23a-4966-8a9c-97a51f8c355b" Level="Low" />
<!-- The IsEnabled and Categories elements are optional -->
<MarkerProvider Name="myMarker1" Guid="d0dbb3a3-895c-4ce6-96d9-28f69d664dc3" Level="Critical" IsEnabled="false" Categories="0,1,3-5,8" />
<MarkerProvider Name="myMarker2" Guid="03452127-a617-4302-9e30-c0d10442e4ee" Level="Low" IsEnabled="false" Categories="0,1,3-5,8-10,11-13" />
</Markers>
<FilterConfig>
<CollectClrEvents>true</CollectClrEvents>
<ClrCollectionOptions>CollectForNative DisableNGenRundown</ClrCollectionOptions>
<CollectSampleEvents>true</CollectSampleEvents>
<CollectGpuEvents>true</CollectGpuEvents>
<CollectFileIO>true</CollectFileIO>
</FilterConfig>
<UserBufferSettings>
<BufferFlushTimer>0</BufferFlushTimer>
<BufferSize>256</BufferSize>
<MinimumBuffers>512</MinimumBuffers>
<MaximumBuffers>1024</MaximumBuffers>
</UserBufferSettings>
<KernelBufferSettings>
<BufferFlushTimer>0</BufferFlushTimer>
<BufferSize>256</BufferSize>
<MinimumBuffers>512</MinimumBuffers>
<MaximumBuffers>1024</MaximumBuffers>
</KernelBufferSettings>
<!-- List of MyCodeDirectory directories -->
<JustMyCode>
<MyCodeDirectory>C:\myBinaries1</MyCodeDirectory>
<MyCodeDirectory>C:\myBinaries2</MyCodeDirectory>
</JustMyCode>
</LocalConfig>