Herramienta PEVerify (Peverify.exe)

Actualización: noviembre 2007

Esta herramienta ayuda a los programadores que generan lenguaje intermedio de Microsoft (MSIL) (como autores de compiladores, programadores de motores de secuencias de comandos, etc.) a determinar si el código MSIL y los metadatos asociados satisfacen los requisitos de seguridad de tipos. Algunos compiladores sólo generan código con seguridad de tipos comprobable si se evita la utilización de determinadas construcciones de lenguaje. Si, como programador, está utilizando un compilador con estas características, puede asegurarse de que no ha puesto en peligro la seguridad de tipos del código. Para ello, ejecute la herramienta PEVerify en los archivos con el fin de comprobar el lenguaje MSIL y los metadatos.

peverify filename [options]

Parámetros

Argumento

Descripción

filename

Archivo ejecutable portable (PE) para el que se comprueban el lenguaje MSIL y los metadatos.

Opción

Descripción

/break=maxErrorCount

Anula la comprobación si se generan tantos errores como indica maxErrorCount.

Este parámetro no es compatible con .NET Framework versión 2.0 o posterior.

/clock

Mide e informa de los siguientes tiempos de comprobación en milisegundos:

MD Val. cycle

Ciclo de validación de metadatos

MD Val. pure

Validación pura de metadatos

IL Ver. cycle

Ciclo de comprobación del Lenguaje intermedio de Microsoft (MSIL)

IL Ver pure

Comprobación pura de MSIL

Los tiempos MD Val. cycle e IL Ver. cycle incluyen el tiempo requerido para realizar los procedimientos necesarios de inicio y cierre. Los tiempos MD Val. pure e IL Ver pure reflejan el tiempo requerido únicamente para realizar la validación o comprobación.

/help

Muestra la sintaxis de comandos y opciones para la herramienta.

/hresult

Muestra los códigos de error en formato hexadecimal.

/ignore=hex.code [, hex.code]

No tiene en cuenta los códigos de error especificados.

/ignore=@responseFile

No tiene en cuenta los códigos de error enumerados en el archivo de respuesta especificado.

/il

Realiza comprobaciones de la seguridad de tipos de MSIL en los métodos implementados en el ensamblado especificado por el argumento filename. La herramienta devuelve descripciones detalladas de cada uno de los problemas encontrados, salvo que se especifique la opción /quiet.

/md

Realiza comprobaciones de validación de metadatos en el ensamblado especificado por el argumento filename. Para ello recorre la estructura completa de metadatos en el archivo y genera un informe de todos los problemas de validación producidos.

/nologo

Suprime la presentación de la versión del producto y la información de copyright.

/nosymbols

En .NET Framework versión 2.0, se suprimen los números de línea para compatibilidad con versiones anteriores.

/quiet

Especifica el modo no interactivo; suprime la salida de los informes relativos a problemas de comprobación. No obstante, Peverify.exe notifica si el archivo tiene seguridad de tipos, pero no proporciona información de los problemas que impiden la comprobación de la seguridad de tipos.

/unique

No tiene en cuenta la repetición de códigos de error.

/verbose

En .NET Framework versión 2.0, se muestra información adicional en los mensajes de verificación de MSIL.

/?

Muestra la sintaxis de comandos y opciones para la herramienta.

Comentarios

Common Language Runtime se basa en la ejecución con seguridad de tipos del código de la aplicación para ayudar a imponer mecanismos de aislamiento y seguridad. Normalmente, el código que no tiene seguridad de tipos comprobable no se puede ejecutar, aunque se puede establecer la directiva de seguridad para permitir la ejecución de código de confianza pero no comprobable.

Si no se especifica ninguna de las opciones /md y /il, Peverify.exe realiza ambos tipos de comprobaciones. Primero realiza comprobaciones de tipo /md. Si no se producen errores, realiza comprobaciones de tipo /il. Si especifica ambas opciones, /md y /il, se realizarán las comprobaciones de tipo /il aunque existan errores en los metadatos. Así, si no hay ningún error de metadatos, peverify filenamees equivalente a peverify filename /md /il.

Peverify.exe realiza comprobaciones exhaustivas de MSIL basándose en el análisis del flujo de datos y en una lista que contiene centenares de reglas sobre metadatos válidos. Para obtener información detallada sobre las comprobaciones que realiza Peverify.exe, vea "Metadata Validation Specification" y "MSIL Instruction Set Specification" en la carpeta Tools Developer Guide de Kit de desarrollo de software de Windows (SDK).

Observe que .NET Framework versión 2.0 o posterior admite devoluciones de los datos byref verificables especificados mediante las siguientes instrucciones de MSIL: dup, ldsflda, ldflda, ldelema, call y unbox.

Ejemplos

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe.

peverify myAssembly.exe /md /il

Tras la ejecución correcta de la solicitud anterior, Peverify.exe muestra el mensaje siguiente.

All classes and methods in myAssembly.exe Verified

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe. La herramienta muestra el tiempo necesario para ejecutar estas comprobaciones.

peverify myAssembly.exe /md /il /clock

Tras la ejecución correcta de la solicitud anterior, Peverify.exe muestra el mensaje siguiente.

All classes and methods in myAssembly.exe Verified
Timing: Total run     320 msec
        MD Val.cycle  40 msec
        MD Val.pure   10 msec
        IL Ver.cycle  270 msec
        IL Ver.pure   230 msec

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de la seguridad de tipos de MSIL en los métodos implantados en el ensamblado myAssembly.exe. Sin embargo, Peverify.exe se detiene si detecta el número máximo de errores, que es 100. Asimismo, omite los códigos de error especificados.

peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234

El comando siguiente produce el mismo resultado que el ejemplo anterior, pero especifica los códigos de error que se omiten en el archivo de respuesta ignoreErrors.rsp.

peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp

El archivo de respuesta puede contener una lista de códigos de error separados por comas.

0x12345678, 0xABCD1234

De modo alternativo, el archivo de respuesta puede tener un formato que incluya un código de error por línea.

0x12345678
0xABCD1234

Vea también

Conceptos

Escribir código seguro comprobable

Seguridad y protección de tipos

Referencia

Herramientas de .NET Framework

Símbolo del sistema de SDK