/Z7, /Zi, /ZI (Formato de la información de depuración)

Seleccionan el tipo de información de depuración que se crea para un programa y si esta información se conserva en archivos objeto (.obj) o en una base de datos de programa (PDB).

/Z{7|i|I}

Comentarios

Estas opciones se describen en la siguiente tabla.

  • Ninguno
    No se genera información de depuración, por lo que la compilación es más rápida.

  • /Z7
    Genera un archivo .obj que contiene información de depuración simbólica completa para usar con el depurador. La información simbólica de depuración incluye los nombres y tipos de las variables, así como funciones y números de línea. No se genera ningún archivo .pdb.

    Para distribuidores de bibliotecas de otros fabricantes, no tener un archivo .pdb supone una ventaja. Sin embargo, los archivos .obj para los encabezados precompilados son necesarios durante la fase de vínculo y la depuración. Si sólo hay información de tipo (y ningún código) en los archivos objeto .pch, también tendrá que compilar con /Yl (Insertar referencia PCH para biblioteca de depuración).

  • /Zi
    Genera una base de datos de programa (PDB) que contiene información de tipo e información simbólica de depuración para uso con el depurador. La información simbólica de depuración incluye los nombres y tipos de las variables, así como funciones y números de línea.

    /Zi no afecta a las optimizaciones. Sin embargo, /Zi sí implica /debug; vea /DEBUG (Generar información de depuración) para obtener más información.

    La información de tipo se coloca en el archivo .pdb y no en el archivo .obj.

    Puede utilizar /Gm (Habilitar regeneración mínima) con /Zi, mientras que /Gm no está disponible al compilar con /Z7.

    Cuando se compila con /Zi y /clr, el atributo DebuggableAttribute no se coloca en los metadatos del ensamblado; deberá especificarlo en el código fuente, si lo desea. Este atributo puede afectar al rendimiento de la aplicación en tiempo de ejecución. Para obtener más información sobre cómo afecta al rendimiento el atributo Debuggable y cómo puede modificar el impacto en el rendimiento, vea Facilitar la depuración de una imagen.

  • /ZI
    Genera una base de datos de programa, como se ha explicado antes, en un formato compatible con la característica Editar y continuar. Si desea usar la depuración con Editar y continuar, debe usar esta opción. Dado que la mayoría de las optimizaciones son incompatibles con Editar y continuar, el uso de /ZI deshabilita cualquier instrucción #pragma optimize del código.

    /ZI hace que se usen /Gy (Habilitar vinculación en el nivel de función) y /FC (Ruta de acceso completa de archivo de código fuente en diagnósticos) en la compilación.

    /ZI no es compatible con /clr (Compilación de Common Language Runtime).

    Nota

    /ZI sólo está disponible en el compilador con destino en x86; esta opción del compilador no está disponible en los compiladores con destino en x64 o en la familia del procesador Itanium (IPF).

El compilador asigna el nombre proyecto.pdb a la base de datos de programa. Si compila un archivo sin un proyecto, el compilador crea una base de datos denominada VCx0.pdb, donde x es la versión principal de Visual C++ en uso. El compilador incrusta el nombre de la PDB en cada archivo .obj que crea con esta opción, y hace apuntar el depurador a la ubicación de la información simbólica y de números de línea. Si utiliza esta opción, los archivos .obj tendrán un tamaño menor, porque la información de depuración se almacena en el archivo .pdb y no en archivos .obj.

Si crea una biblioteca a partir de objetos compilados con esta opción, el archivo .pdb asociado debe estar disponible cuando se vincule la biblioteca a un programa. Por lo tanto, si distribuye la biblioteca, debe distribuir el archivo PDB.

Para crear una biblioteca que contenga información de depuración sin utilizar archivos .pdb, debe seleccionar la opción del compilador Compatible con C 7.0 (/Z7). Si usa las opciones de encabezado precompilado, la información de depuración del encabezado precompilado y del resto del código fuente se incluye en el archivo PDB. La opción /Yd se pasa por alto cuando se especifica la opción Base de datos de programa.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.

  2. Haga clic en la carpeta C/C++.

  3. Haga clic en la página de propiedades General.

  4. Modifique la propiedad Formato de la información de depuración.

Para establecer esta opción del compilador mediante programación

Vea también

Referencia

Opciones del compilador

Establecer las opciones del compilador